X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;ds=sidebyside;f=src%2Fphp_pqconn.c;h=ed7cbe180195ea67aaa2840e60a1e253efe116d8;hb=df586b558795570822225a3a458bd91a1f7ab433;hp=ad1a0a986ae66699c87ac6f13c8f6ed6ec466a03;hpb=a06db6d217fc8ba0fd9b8273a9e595477d59afcc;p=m6w6%2Fext-pq diff --git a/src/php_pqconn.c b/src/php_pqconn.c index ad1a0a9..ed7cbe1 100644 --- a/src/php_pqconn.c +++ b/src/php_pqconn.c @@ -78,6 +78,7 @@ static void php_pqconn_object_free(void *o TSRMLS_DC) php_resource_factory_handle_dtor(&obj->intern->factory, obj->intern->conn TSRMLS_CC); php_resource_factory_dtor(&obj->intern->factory); zend_hash_destroy(&obj->intern->listeners); + zend_hash_destroy(&obj->intern->statements); zend_hash_destroy(&obj->intern->converters); zend_hash_destroy(&obj->intern->eventhandlers); efree(obj->intern); @@ -563,7 +564,7 @@ php_resource_factory_ops_t *php_pqconn_get_resource_factory_ops(void) static void php_pqconn_wakeup(php_persistent_handle_factory_t *f, void **handle TSRMLS_DC) { PGresult *res = PQexec(*handle, ""); - php_pq_clear_res(res); + php_pqres_clear(res); if (CONNECTION_OK != PQstatus(*handle)) { PQreset(*handle); @@ -597,7 +598,7 @@ static int apply_unlisten(void *p TSRMLS_DC, int argc, va_list argv, zend_hash_k PGresult *res = unlisten(obj->intern->conn, key->arKey, key->nKeyLength - 1 TSRMLS_CC); if (res) { - php_pq_clear_res(res); + php_pqres_clear(res); } return ZEND_HASH_APPLY_REMOVE; @@ -624,7 +625,7 @@ static void php_pqconn_retire(php_persistent_handle_factory_t *f, void **handle } /* clean up async results */ while ((res = PQgetResult(*handle))) { - php_pq_clear_res(res); + php_pqres_clear(res); } /* clean up transaction & session */ @@ -638,7 +639,7 @@ static void php_pqconn_retire(php_persistent_handle_factory_t *f, void **handle } if (res) { - php_pq_clear_res(res); + php_pqres_clear(res); } if (evdata) { @@ -679,6 +680,7 @@ static PHP_METHOD(pqconn, __construct) { obj->intern->default_auto_convert = PHP_PQRES_CONV_ALL; zend_hash_init(&obj->intern->listeners, 0, NULL, (dtor_func_t) zend_hash_destroy, 0); + zend_hash_init(&obj->intern->statements, 0, NULL, NULL, 0); zend_hash_init(&obj->intern->converters, 0, NULL, ZVAL_PTR_DTOR, 0); zend_hash_init(&obj->intern->eventhandlers, 0, NULL, (dtor_func_t) zend_hash_destroy, 0); @@ -783,7 +785,7 @@ static PHP_METHOD(pqconn, unlisten) if (res) { php_pqres_success(res TSRMLS_CC); - php_pq_clear_res(res); + php_pqres_clear(res); } } } @@ -894,7 +896,7 @@ static PHP_METHOD(pqconn, listen) { obj->intern->poller = PQconsumeInput; php_pqconn_add_listener(obj, channel_str, channel_len, &listener TSRMLS_CC); } - php_pq_clear_res(res); + php_pqres_clear(res); } php_pqconn_notify_listeners(obj TSRMLS_CC); @@ -979,7 +981,7 @@ static PHP_METHOD(pqconn, notify) { throw_exce(EX_RUNTIME TSRMLS_CC, "Failed to notify listeners (%s)", PHP_PQerrorMessage(obj->intern->conn)); } else { php_pqres_success(res TSRMLS_CC); - php_pq_clear_res(res); + php_pqres_clear(res); } php_pqconn_notify_listeners(obj TSRMLS_CC); @@ -1074,7 +1076,7 @@ static PHP_METHOD(pqconn, exec) { } else if (SUCCESS == php_pqres_success(res TSRMLS_CC)) { php_pq_object_to_zval_no_addref(PQresultInstanceData(res, php_pqconn_event), &return_value TSRMLS_CC); } else { - php_pq_clear_res(res); + php_pqres_clear(res); } php_pqconn_notify_listeners(obj TSRMLS_CC); @@ -1181,7 +1183,7 @@ static PHP_METHOD(pqconn, execParams) { if (SUCCESS == php_pqres_success(res TSRMLS_CC)) { php_pq_object_to_zval_no_addref(PQresultInstanceData(res, php_pqconn_event), &return_value TSRMLS_CC); } else { - php_pq_clear_res(res); + php_pqres_clear(res); } php_pqconn_notify_listeners(obj TSRMLS_CC); @@ -1254,7 +1256,7 @@ ZEND_RESULT_CODE php_pqconn_prepare(zval *object, php_pqconn_object_t *obj, cons throw_exce(EX_RUNTIME TSRMLS_CC, "Failed to prepare statement (%s)", PHP_PQerrorMessage(obj->intern->conn)); } else { rv = php_pqres_success(res TSRMLS_CC); - php_pq_clear_res(res); + php_pqres_clear(res); php_pqconn_notify_listeners(obj TSRMLS_CC); } @@ -1369,7 +1371,7 @@ ZEND_RESULT_CODE php_pqconn_declare(zval *object, php_pqconn_object_t *obj, cons throw_exce(EX_RUNTIME TSRMLS_CC, "Failed to declare cursor (%s)", PHP_PQerrorMessage(obj->intern->conn)); } else { rv = php_pqres_success(res TSRMLS_CC); - php_pq_clear_res(res); + php_pqres_clear(res); php_pqconn_notify_listeners(obj TSRMLS_CC); } @@ -1606,7 +1608,7 @@ ZEND_RESULT_CODE php_pqconn_start_transaction(zval *zconn, php_pqconn_object_t * throw_exce(EX_RUNTIME TSRMLS_CC, "Failed to start transaction (%s)", PHP_PQerrorMessage(conn_obj->intern->conn)); } else { rv = php_pqres_success(res TSRMLS_CC); - php_pq_clear_res(res); + php_pqres_clear(res); php_pqconn_notify_listeners(conn_obj TSRMLS_CC); }