@@ -245,6 +245,8 @@ v8::Handle<v8::Value> Java::createJVM(JavaVM** jvm, JNIEnv** env) {
245245 ARGS_FRONT_OBJECT (functions);
246246
247247 DynamicProxyData* dynamicProxyData = new DynamicProxyData ();
248+ dynamicProxyData->markerStart = DYNAMIC_PROXY_DATA_MARKER_START;
249+ dynamicProxyData->markerEnd = DYNAMIC_PROXY_DATA_MARKER_END;
248250 dynamicProxyData->java = self;
249251 dynamicProxyData->interfaceName = interfaceName;
250252 dynamicProxyData->functions = v8::Persistent<v8::Object>::New (functions);
@@ -598,6 +600,9 @@ void EIO_CallJs(uv_work_t* req) {
598600
599601void EIO_AfterCallJs (uv_work_t * req) {
600602 DynamicProxyData* dynamicProxyData = static_cast <DynamicProxyData*>(req->data );
603+ if (!dynamicProxyDataVerify (dynamicProxyData)) {
604+ return ;
605+ }
601606 dynamicProxyData->result = NULL ;
602607
603608 JNIEnv* env = dynamicProxyData->env ;
@@ -631,6 +636,9 @@ void EIO_AfterCallJs(uv_work_t* req) {
631636 }
632637 v8Result = fn->Call (dynamicProxyData->functions , argc, argv);
633638 delete[] argv;
639+ if (!dynamicProxyDataVerify (dynamicProxyData)) {
640+ return ;
641+ }
634642
635643 javaResult = v8ToJava (env, v8Result);
636644 if (javaResult == NULL ) {
@@ -668,6 +676,9 @@ JNIEXPORT jobject JNICALL Java_node_NodeDynamicProxyClass_callJs(JNIEnv *env, jo
668676 }
669677 }
670678
679+ if (!dynamicProxyDataVerify (dynamicProxyData)) {
680+ return NULL ;
681+ }
671682 if (dynamicProxyData->result ) {
672683 env->DeleteGlobalRef (dynamicProxyData->result );
673684 }
0 commit comments