Module: wine Branch: refs/heads/master Commit: 8cea993033944e927e6bcbceda647322d00916e5 URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=8cea993033944e927e6bcbce...
Author: Alexandre Julliard julliard@winehq.org Date: Mon Mar 6 21:00:09 2006 +0100
server: Added unlink_named_object function.
Allows to remove the name of an object while keeping around the object itself.
---
server/object.c | 7 +++++++ server/object.h | 1 + 2 files changed, 8 insertions(+), 0 deletions(-)
diff --git a/server/object.c b/server/object.c index e881a69..fbef1a1 100644 --- a/server/object.c +++ b/server/object.c @@ -217,6 +217,13 @@ void dump_object_name( struct object *ob } }
+/* unlink a named object from its namespace, without freeing the object itself */ +void unlink_named_object( struct object *obj ) +{ + if (obj->name) free_name( obj ); + obj->name = NULL; +} + /* grab an object (i.e. increment its refcount) and return the object */ struct object *grab_object( void *ptr ) { diff --git a/server/object.h b/server/object.h index 4a137fd..319bbba 100644 --- a/server/object.h +++ b/server/object.h @@ -109,6 +109,7 @@ extern void *create_object( struct names const struct unicode_str *name, struct object *parent ); extern void *create_named_object( struct namespace *namespace, const struct object_ops *ops, const struct unicode_str *name, unsigned int attributes ); +extern void unlink_named_object( struct object *obj ); extern struct namespace *create_namespace( unsigned int hash_size ); /* grab/release_object can take any pointer, but you better make sure */ /* that the thing pointed to starts with a struct object... */