mirror of
https://github.com/Ylianst/MeshAgent
synced 2025-12-14 15:23:39 +00:00
Added CreateFinalizerEx, where you can specify 'singleton' which clears any previously defined finalizers
This commit is contained in:
@@ -574,9 +574,10 @@ duk_ret_t ILibDuktape_IndependentFinalizer_Dispatch(duk_context *ctx)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ILibDuktape_CreateFinalizer(duk_context *ctx, duk_c_function func)
|
void ILibDuktape_CreateFinalizerEx(duk_context *ctx, duk_c_function func, int singleton)
|
||||||
{
|
{
|
||||||
ILibDuktape_EventEmitter_Create(ctx);
|
ILibDuktape_EventEmitter *e = ILibDuktape_EventEmitter_Create(ctx);
|
||||||
|
if (singleton != 0) { ILibDuktape_EventEmitter_RemoveAllListeners(e, "~"); }
|
||||||
ILibDuktape_EventEmitter_PrependOnce(ctx, -1, "~", func);
|
ILibDuktape_EventEmitter_PrependOnce(ctx, -1, "~", func);
|
||||||
}
|
}
|
||||||
duk_ret_t ILibDuktape_CreateProperty_InstanceMethod_Sink(duk_context *ctx)
|
duk_ret_t ILibDuktape_CreateProperty_InstanceMethod_Sink(duk_context *ctx)
|
||||||
|
|||||||
@@ -107,7 +107,8 @@ void ILibDuktape_CreateProperty_InstanceMethod(duk_context *ctx, char *methodNam
|
|||||||
void ILibDuktape_CreateProperty_InstanceMethodEx(duk_context *ctx, char *methodName, void *funcHeapPtr);
|
void ILibDuktape_CreateProperty_InstanceMethodEx(duk_context *ctx, char *methodName, void *funcHeapPtr);
|
||||||
void ILibDuktape_CreateReadonlyProperty(duk_context *ctx, char *propName);
|
void ILibDuktape_CreateReadonlyProperty(duk_context *ctx, char *propName);
|
||||||
#define ILibDuktape_CreateReadonlyProperty_int(ctx, propName, propValue) duk_push_int(ctx, propValue);ILibDuktape_CreateReadonlyProperty(ctx, propName)
|
#define ILibDuktape_CreateReadonlyProperty_int(ctx, propName, propValue) duk_push_int(ctx, propValue);ILibDuktape_CreateReadonlyProperty(ctx, propName)
|
||||||
void ILibDuktape_CreateFinalizer(duk_context *ctx, duk_c_function func);
|
void ILibDuktape_CreateFinalizerEx(duk_context *ctx, duk_c_function func, int singleton);
|
||||||
|
#define ILibDuktape_CreateFinalizer(ctx, func) ILibDuktape_CreateFinalizerEx(ctx, func, 0)
|
||||||
|
|
||||||
void *ILibDuktape_Memory_Alloc(duk_context *ctx, duk_size_t size);
|
void *ILibDuktape_Memory_Alloc(duk_context *ctx, duk_size_t size);
|
||||||
void *ILibDuktape_Memory_AllocEx(duk_context *ctx, duk_idx_t index, duk_size_t size);
|
void *ILibDuktape_Memory_AllocEx(duk_context *ctx, duk_idx_t index, duk_size_t size);
|
||||||
|
|||||||
Reference in New Issue
Block a user