core/systems/HandleSys.h
changeset 259 ca9b124a2544
parent 252 ce166c465bad
child 262 de0e374ffa47
     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.