@@ -65,12 +65,6 @@ void finalize_objc_object(napi_env /*env*/, void *data, void *hint) {
6565 bridgeState->unregisterObject (object);
6666}
6767
68- void finalize_objc_object_borrowed (napi_env, void *data, void *hint) {
69- id object = static_cast <id >(data);
70- ObjCBridgeState *bridgeState = static_cast <ObjCBridgeState *>(hint);
71- bridgeState->objectRefs .erase (object);
72- }
73-
7468napi_value ObjCBridgeState::getObject (napi_env env, id obj,
7569 napi_value constructor,
7670 ObjectOwnership ownership) {
@@ -128,11 +122,8 @@ void finalize_objc_object_borrowed(napi_env, void *data, void *hint) {
128122 napi_wrap (env, result, obj, nullptr , nullptr , nullptr );
129123
130124 napi_ref ref = nullptr ;
131- NAPI_GUARD (napi_add_finalizer (env, result, obj,
132- ownership == kBorrowedObject
133- ? finalize_objc_object_borrowed
134- : finalize_objc_object,
135- this , &ref)) {
125+ NAPI_GUARD (napi_add_finalizer (env, result, obj, finalize_objc_object, this ,
126+ &ref)) {
136127 NAPI_THROW_LAST_ERROR
137128 return nullptr ;
138129 }
@@ -142,6 +133,24 @@ void finalize_objc_object_borrowed(napi_env, void *data, void *hint) {
142133 if (ownership == kUnownedObject ) {
143134 [obj retain ];
144135 }
136+ // #if DEBUG
137+ // napi_value global, Error, error, stack;
138+ // napi_get_global(env, &global);
139+ // napi_get_named_property(env, global, "Error", &Error);
140+ // napi_new_instance(env, Error, 0, nullptr, &error);
141+ // napi_get_named_property(env, error, "stack", &stack);
142+
143+ // size_t stackSize;
144+ // napi_get_value_string_utf8(env, stack, nullptr, 0, &stackSize);
145+ // char *stackStr = new char[stackSize + 1];
146+ // napi_get_value_string_utf8(env, stack, stackStr, stackSize + 1, nullptr);
147+
148+ // NSString *str = [NSString stringWithFormat:@"Wrapped object <%s: %p> @ %ld # %s",
149+ // class_getName(cls), obj, [obj retainCount], stackStr];
150+ // dbglog([str UTF8String]);
151+
152+ // delete[] stackStr;
153+ // #endif
145154 }
146155
147156 return result;
@@ -297,6 +306,14 @@ napi_value findConstructorForObject(napi_env env, ObjCBridgeState *bridgeState,
297306}
298307
299308void ObjCBridgeState::unregisterObject (id object) noexcept {
309+ // #if DEBUG
310+ // NSString *string = [NSString stringWithFormat: @"Unregistering object <%s: %p> @ %ld # success: %d, finalized: %d",
311+ // class_getName(object_getClass(object)), object, [object retainCount],
312+ // (int)objectRefs.contains(object), (int)finalized];
313+
314+ // dbglog([string UTF8String]);
315+ // #endif
316+
300317 if (objectRefs.contains (object)) {
301318 objectRefs.erase (object);
302319 [object release ];
0 commit comments