Lines Matching refs:extensionhandle

104 	int extensionhandle )
109 assert( extensionhandle < registered_extensions.extensions[objecttype].count );
112 constructor = registered_extensions.extensions[objecttype].constructors[extensionhandle];
114 assert( eblock->extensions[extensionhandle] == NULL );
117 eblock->extensions[extensionhandle] = (*constructor)( object, parent );
119 eblock->extensions[extensionhandle] = NULL;
123 static void free_extension(struct slapi_extension_block *eblock, int objecttype, void *object, void *parent, int extensionhandle )
128 assert( extensionhandle < registered_extensions.extensions[objecttype].count );
130 if ( eblock->extensions[extensionhandle] != NULL ) {
132 destructor = registered_extensions.extensions[objecttype].destructors[extensionhandle];
134 (*destructor)( eblock->extensions[extensionhandle], object, parent );
136 eblock->extensions[extensionhandle] = NULL;
140 void *slapi_get_object_extension(int objecttype, void *object, int extensionhandle)
149 if ( extensionhandle < registered_extensions.extensions[objecttype].count ) {
150 return eblock->extensions[extensionhandle];
156 void slapi_set_object_extension(int objecttype, void *object, int extensionhandle, void *extension)
165 if ( extensionhandle < registered_extensions.extensions[objecttype].count ) {
167 free_extension( eblock, objecttype, object, parent, extensionhandle );
170 eblock->extensions[extensionhandle] = extension;
180 int *extensionhandle)
198 *extensionhandle = re->count;
215 re->constructors[*extensionhandle] = constructor;
224 re->destructors[*extensionhandle] = destructor;