From a621c46f006c72e131925a48bb94f75295043c58 Mon Sep 17 00:00:00 2001 From: Peter Kanev Date: Wed, 9 Aug 2017 11:57:35 +0300 Subject: [PATCH] deprecate V8Extension GetInternalFieldCount and use V8 Object's InternalFieldCount API fix crash after V8 GC was finished when incorrectly using the GetInternalFieldCount failed to resolve the JS Object --- runtime/src/main/jni/ObjectManager.cpp | 2 +- runtime/src/main/jni/include/V8NativeScriptExtension.h | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/runtime/src/main/jni/ObjectManager.cpp b/runtime/src/main/jni/ObjectManager.cpp index 76930d0f9..a389ec45b 100644 --- a/runtime/src/main/jni/ObjectManager.cpp +++ b/runtime/src/main/jni/ObjectManager.cpp @@ -109,7 +109,7 @@ ObjectManager::JSInstanceInfo* ObjectManager::GetJSInstanceInfo(const Local& object) { - int internalFieldCount = NativeScriptExtension::GetInternalFieldCount(object); + int internalFieldCount = object->InternalFieldCount(); const int count = static_cast(MetadataNodeKeys::END); return internalFieldCount == count; } diff --git a/runtime/src/main/jni/include/V8NativeScriptExtension.h b/runtime/src/main/jni/include/V8NativeScriptExtension.h index 53b721d3e..a236a059d 100644 --- a/runtime/src/main/jni/include/V8NativeScriptExtension.h +++ b/runtime/src/main/jni/include/V8NativeScriptExtension.h @@ -14,6 +14,10 @@ namespace v8 { static v8::Local GetPropertyKeys(v8::Isolate *isolate, const v8::Local& context, const v8::Local& object, bool& success); + /* + * Deprecated. Use V8 Object.InternalFieldCount() instead. + * TODO: Pete: remove in following 6.x update + */ static int GetInternalFieldCount(const v8::Local& object); static void CpuFeaturesProbe(bool cross_compile);