1.1 --- a/core/systems/HandleSys.h Mon Jan 01 23:14:20 2007 +0000
1.2 +++ b/core/systems/HandleSys.h Tue Jan 02 01:44:46 2007 +0000
1.3 @@ -36,8 +36,9 @@
1.4 enum HandleSet
1.5 {
1.6 HandleSet_None = 0,
1.7 - HandleSet_Used,
1.8 - HandleSet_Identity
1.9 + HandleSet_Used, /* The Handle is in use */
1.10 + HandleSet_Freed, /* The "master" Handle of a clone chain is freed */
1.11 + HandleSet_Identity, /* The Handle is a special identity */
1.12 };
1.13
1.14 struct QHandle
1.15 @@ -91,7 +92,7 @@
1.16 IdentityToken_t *source,
1.17 IdentityToken_t *ident);
1.18 Handle_t CreateScriptHandle(HandleType_t type, void *object, IPluginContext *pContext, IdentityToken_t *ident);
1.19 - HandleError FreeHandle(Handle_t handle, IdentityToken_t *ident);
1.20 + HandleError FreeHandle(Handle_t handle, IdentityToken_t *owner, IdentityToken_t *ident);
1.21 HandleError CloneHandle(Handle_t handle, Handle_t *newhandle, IdentityToken_t *source, IdentityToken_t *ident);
1.22 HandleError ReadHandle(Handle_t handle, HandleType_t type, IdentityToken_t *ident, void **object);
1.23 bool TypeCheck(HandleType_t intype, HandleType_t outtype);
1.24 @@ -103,7 +104,8 @@
1.25 IdentityToken_t *ident,
1.26 QHandle **pHandle,
1.27 unsigned int *index,
1.28 - HandleAccessRight access);
1.29 + HandleAccessRight access,
1.30 + bool ignoreFree=false);
1.31
1.32 /**
1.33 * Creates a basic handle and sets its reference count to 1.