Bladeren bron

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

Simon Best 12 jaren geleden
bovenliggende
commit
06527cf1d9
1 gewijzigde bestanden met toevoegingen van 7 en 0 verwijderingen
  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"));