Rebase against 8676f7bae099f0ca20c26a29dfa4bebd828b39b9.

This commit is contained in:
Sebastian Lackner
2016-01-22 02:26:54 +01:00
parent b1e6717b81
commit fe47c7cf07
4 changed files with 70 additions and 61 deletions

View File

@@ -1,15 +1,15 @@
From e266c05975d524f09886decb854ec78942e9b2fb Mon Sep 17 00:00:00 2001
From fa91df6b120d18ad5c44c204dd5f17da734b859b Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Mon, 17 Aug 2015 00:13:27 +0200
Subject: server: Move parent reference from object_name to object.
---
server/object.c | 20 ++++++++++----------
server/object.c | 22 +++++++++++-----------
server/object.h | 1 +
2 files changed, 11 insertions(+), 10 deletions(-)
2 files changed, 12 insertions(+), 11 deletions(-)
diff --git a/server/object.c b/server/object.c
index d04fdb9..bfb4689 100644
index 1ec547a..b330831 100644
--- a/server/object.c
+++ b/server/object.c
@@ -44,7 +44,6 @@ struct object_name
@@ -20,7 +20,7 @@ index d04fdb9..bfb4689 100644
data_size_t len; /* name length in bytes */
WCHAR name[1];
};
@@ -136,18 +135,15 @@ static struct object_name *alloc_name( const struct unicode_str *name )
@@ -138,18 +137,15 @@ static struct object_name *alloc_name( const struct unicode_str *name )
if ((ptr = mem_alloc( sizeof(*ptr) + name->len - sizeof(ptr->name) )))
{
ptr->len = name->len;
@@ -40,7 +40,7 @@ index d04fdb9..bfb4689 100644
free( ptr );
}
@@ -183,7 +179,7 @@ WCHAR *get_object_full_name( struct object *obj, data_size_t *ret_len )
@@ -185,7 +181,7 @@ WCHAR *get_object_full_name( struct object *obj, data_size_t *ret_len )
{
struct object_name *name = ptr->name;
len += name->len + sizeof(WCHAR);
@@ -49,7 +49,7 @@ index d04fdb9..bfb4689 100644
}
if (!len) return NULL;
if (!(ret = malloc( len ))) return NULL;
@@ -195,7 +191,7 @@ WCHAR *get_object_full_name( struct object *obj, data_size_t *ret_len )
@@ -197,7 +193,7 @@ WCHAR *get_object_full_name( struct object *obj, data_size_t *ret_len )
memcpy( ret + len - name->len, name->name, name->len );
len -= name->len + sizeof(WCHAR);
memcpy( ret + len, &backslash, sizeof(WCHAR) );
@@ -58,7 +58,7 @@ index d04fdb9..bfb4689 100644
}
return (WCHAR *)ret;
}
@@ -208,6 +204,7 @@ void *alloc_object( const struct object_ops *ops )
@@ -210,6 +206,7 @@ void *alloc_object( const struct object_ops *ops )
{
obj->refcount = 1;
obj->handle_count = 0;
@@ -66,7 +66,7 @@ index d04fdb9..bfb4689 100644
obj->ops = ops;
obj->name = NULL;
obj->sd = NULL;
@@ -230,7 +227,7 @@ void *create_object( struct namespace *namespace, const struct object_ops *ops,
@@ -232,7 +229,7 @@ void *create_object( struct namespace *namespace, const struct object_ops *ops,
if ((obj = alloc_object( ops )))
{
set_object_name( namespace, obj, name_ptr );
@@ -75,7 +75,16 @@ index d04fdb9..bfb4689 100644
}
else
free( name_ptr );
@@ -278,8 +275,10 @@ void dump_object_name( struct object *obj )
@@ -275,7 +272,7 @@ static void dump_name( struct object *obj )
struct object_name *name = obj->name;
if (!name) return;
- if (name->parent) dump_name( name->parent );
+ if (obj->parent) dump_name( obj->parent );
fputs( "\\\\", stderr );
dump_strW( name->name, name->len / sizeof(WCHAR), stderr, "[]" );
}
@@ -292,8 +289,10 @@ void dump_object_name( struct object *obj )
/* unlink a named object from its namespace, without freeing the object itself */
void unlink_named_object( struct object *obj )
{
@@ -87,7 +96,7 @@ index d04fdb9..bfb4689 100644
}
/* mark an object as being stored statically, i.e. only released at shutdown */
@@ -311,7 +310,8 @@ void release_object( void *ptr )
@@ -325,7 +324,8 @@ void release_object( void *ptr )
/* if the refcount is 0, nobody can be in the wait queue */
assert( list_empty( &obj->wait_queue ));
obj->ops->destroy( obj );
@@ -98,7 +107,7 @@ index d04fdb9..bfb4689 100644
#ifdef DEBUG_OBJECTS
list_remove( &obj->obj_list );
diff --git a/server/object.h b/server/object.h
index 0974d87..9d14c9c 100644
index 8e010a3..4b554bc 100644
--- a/server/object.h
+++ b/server/object.h
@@ -96,6 +96,7 @@ struct object
@@ -110,5 +119,5 @@ index 0974d87..9d14c9c 100644
struct list wait_queue;
struct object_name *name;
--
2.5.0
2.6.4