Remove unneeded addHeapRef

This commit is contained in:
Alexander Shabalin
2020-03-26 13:05:44 +03:00
parent b52658eb38
commit 7295cc0f39
-4
View File
@@ -2046,7 +2046,6 @@ OBJ_GETTER(initSharedInstance,
} }
ObjHeader* object = AllocInstance(typeInfo, OBJ_RESULT); ObjHeader* object = AllocInstance(typeInfo, OBJ_RESULT);
memoryState->initializingSingletons.push_back(std::make_pair(location, object)); memoryState->initializingSingletons.push_back(std::make_pair(location, object));
addHeapRef(object);
#if KONAN_NO_EXCEPTIONS #if KONAN_NO_EXCEPTIONS
ctor(object); ctor(object);
if (Strict) if (Strict)
@@ -2054,7 +2053,6 @@ OBJ_GETTER(initSharedInstance,
UpdateHeapRef(location, object); UpdateHeapRef(location, object);
synchronize(); synchronize();
memoryState->initializingSingletons.pop_back(); memoryState->initializingSingletons.pop_back();
releaseHeapRef<Strict>(object);
return object; return object;
#else // KONAN_NO_EXCEPTIONS #else // KONAN_NO_EXCEPTIONS
try { try {
@@ -2064,13 +2062,11 @@ OBJ_GETTER(initSharedInstance,
UpdateHeapRef(location, object); UpdateHeapRef(location, object);
synchronize(); synchronize();
memoryState->initializingSingletons.pop_back(); memoryState->initializingSingletons.pop_back();
releaseHeapRef<Strict>(object);
return object; return object;
} catch (...) { } catch (...) {
UpdateReturnRef(OBJ_RESULT, nullptr); UpdateReturnRef(OBJ_RESULT, nullptr);
zeroHeapRef(location); zeroHeapRef(location);
memoryState->initializingSingletons.pop_back(); memoryState->initializingSingletons.pop_back();
releaseHeapRef<Strict>(object);
synchronize(); synchronize();
throw; throw;
} }