Explorar o código

Fix for https://github.com/preillyme/v8js/issues/6. This is probably …
… horrible hack but it works for now until we have a better solution.

Patrick Reilly %!s(int64=12) %!d(string=hai) anos
pai
achega
edb8609cfe
Modificáronse 1 ficheiros con 7 adicións e 0 borrados
  1. 7 0
      v8js_convert.cc

+ 7 - 0
v8js_convert.cc

@@ -384,6 +384,13 @@ static v8::Handle<v8::Value> php_v8js_hash_to_jsobj(zval *value TSRMLS_DC) /* {{
 				newobj->SetHiddenValue(V8JS_SYM(ZEND_ISSET_FUNC_NAME), PHP_V8JS_CALLBACK(isset_ptr));
 			}
 		}
+		
+			// See https://github.com/preillyme/v8js/issues/6
+			if (Z_REFCOUNT_P(value) == 1)
+			{
+			      Z_SET_REFCOUNT_P(value, 2);
+			}
+			
 		newobj->SetAlignedPointerInInternalField(0, (void *) value);
 	} else {
 		new_tpl->SetClassName(V8JS_SYM("Array"));