%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
#include <stdlib.h> #define NAPI_EXPERIMENTAL #include <node_api.h> #define NAPI_CALL(env, call) \ do { \ napi_status status = (call); \ if (status != napi_ok) { \ napi_throw_error((env), NULL, #call " failed"); \ return NULL; \ } \ } while (0) static napi_value GetCount(napi_env env, napi_callback_info info) { napi_value result; size_t* count; NAPI_CALL(env, napi_get_instance_data(env, (void**)&count)); NAPI_CALL(env, napi_create_uint32(env, *count, &result)); return result; } static napi_value SetCount(napi_env env, napi_callback_info info) { size_t* count; NAPI_CALL(env, napi_get_instance_data(env, (void**)&count)); // Set the count to zero irrespective of what is passed into the setter. *count = 0; return NULL; } static void IncrementCounter(napi_env env, void* data, void* hint) { size_t* count = data; (*count) = (*count) + 1; } static napi_value NewWeak(napi_env env, napi_callback_info info) { napi_value result; void* instance_data; NAPI_CALL(env, napi_create_object(env, &result)); NAPI_CALL(env, napi_get_instance_data(env, &instance_data)); NAPI_CALL(env, napi_add_finalizer(env, result, instance_data, IncrementCounter, NULL, NULL)); return result; } static void FreeCount(napi_env env, void* data, void* hint) { free(data); } /* napi_value */ NAPI_MODULE_INIT(/* napi_env env, napi_value exports */) { napi_property_descriptor props[] = { { "count", NULL, NULL, GetCount, SetCount, NULL, napi_enumerable, NULL }, { "newWeak", NULL, NewWeak, NULL, NULL, NULL, napi_enumerable, NULL } }; size_t* count = malloc(sizeof(*count)); *count = 0; NAPI_CALL(env, napi_define_properties(env, exports, sizeof(props) / sizeof(*props), props)); NAPI_CALL(env, napi_set_instance_data(env, count, FreeCount, NULL)); return exports; }