--- a/trunk/php-java-bridge/client.c +++ b/trunk/php-java-bridge/client.c @@ -124,6 +124,7 @@ Z_LVAL_P(handle) = zend_list_insert(_ob, le_jobject); pval_copy_constructor(handle); INIT_PZVAL(handle); + zval_add_ref(&handle); zend_hash_index_update(Z_OBJPROP_P(presult), 0, &handle, sizeof(pval *), NULL); } @@ -135,6 +136,7 @@ static pval*nextElement (proxyenv *jenv, pval *handle) { pval *result; + zval_add_ref(&handle); ALLOC_ZVAL(result); zval_add_ref(&result); zend_hash_next_index_insert(Z_ARRVAL_P(handle), &result, sizeof(zval *), NULL); @@ -143,23 +145,22 @@ static pval*hashIndexUpdate (proxyenv *jenv, pval *handle, jlong key) { pval *result; + zval_add_ref(&handle); ALLOC_ZVAL(result); - if(key) { - zval_add_ref(&result); - zend_hash_index_update(Z_ARRVAL_P(handle), (unsigned long)key, &result, sizeof(zval *), NULL); - } + zval_add_ref(&result); + zend_hash_index_update(Z_ARRVAL_P(handle), (unsigned long)key, &result, sizeof(zval *), NULL); return result; } static pval*hashUpdate (proxyenv *jenv, pval *handle, jbyteArray key) { pval *result; pval pkey; + zval_add_ref(&handle); ALLOC_ZVAL(result); setResultFromString(jenv, &pkey, key); - if(key) { - zval_add_ref(&result); - zend_hash_update(Z_ARRVAL_P(handle), Z_STRVAL(pkey), Z_STRLEN(pkey)+1, &result, sizeof(zval *), NULL); - } + assert(key); + zval_add_ref(&result); + zend_hash_update(Z_ARRVAL_P(handle), Z_STRVAL(pkey), Z_STRLEN(pkey)+1, &result, sizeof(zval *), NULL); return result; }