X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-pq;a=blobdiff_plain;f=src%2Fphp_pqcopy.c;h=32e20bac26c269ad09a43fc549b28c53987a0d80;hp=89ab68c5037bab7207c37778a4cf93251c6872ab;hb=bffdeef967c851f5046a1dbed426f45611e507d0;hpb=9f5cecf26bd70a92ed013f31afec59e272623ac1 diff --git a/src/php_pqcopy.c b/src/php_pqcopy.c index 89ab68c..32e20ba 100644 --- a/src/php_pqcopy.c +++ b/src/php_pqcopy.c @@ -105,7 +105,7 @@ static void php_pqcopy_object_read_options(zval *object, void *o, zval *return_v } ZEND_BEGIN_ARG_INFO_EX(ai_pqcopy_construct, 0, 0, 3) - ZEND_ARG_OBJ_INFO(0, "connection", pq\\Connection, 0) + ZEND_ARG_OBJ_INFO(0, connection, pq\\Connection, 0) ZEND_ARG_INFO(0, expression) ZEND_ARG_INFO(0, direction) ZEND_ARG_INFO(0, options) @@ -116,7 +116,7 @@ static PHP_METHOD(pqcopy, __construct) { char *expr_str, *opt_str = ""; int expr_len, opt_len = 0; long direction; - STATUS rv; + ZEND_RESULT_CODE rv; zend_replace_error_handling(EH_THROW, exce(EX_INVALID_ARGUMENT), &zeh TSRMLS_CC); rv = zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Osl|s", &zconn, php_pqconn_class_entry, &expr_str, &expr_len, &direction, &opt_str, &opt_len); @@ -180,7 +180,7 @@ static PHP_METHOD(pqcopy, put) { zend_error_handling zeh; char *data_str; int data_len; - STATUS rv; + ZEND_RESULT_CODE rv; zend_replace_error_handling(EH_THROW, exce(EX_INVALID_ARGUMENT), &zeh TSRMLS_CC); rv = zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &data_str, &data_len); @@ -192,7 +192,7 @@ static PHP_METHOD(pqcopy, put) { if (!obj->intern) { throw_exce(EX_UNINITIALIZED TSRMLS_CC, "pq\\COPY not initialized"); } else if (obj->intern->direction != PHP_PQCOPY_FROM_STDIN) { - throw_exce(EX_RUNTIME TSRMLS_CC, "pq\\COPY was not initialized with FROM_STDIN"); + throw_exce(EX_BAD_METHODCALL TSRMLS_CC, "pq\\COPY was not initialized with FROM_STDIN"); } else { if (1 != PQputCopyData(obj->intern->conn->intern->conn, data_str, data_len)) { throw_exce(EX_RUNTIME TSRMLS_CC, "Failed to put COPY data (%s)", PHP_PQerrorMessage(obj->intern->conn->intern->conn)); @@ -209,7 +209,7 @@ static PHP_METHOD(pqcopy, end) { zend_error_handling zeh; char *error_str = NULL; int error_len = 0; - STATUS rv; + ZEND_RESULT_CODE rv; zend_replace_error_handling(EH_THROW, exce(EX_INVALID_ARGUMENT), &zeh TSRMLS_CC); rv = zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s!", &error_str, &error_len); @@ -219,9 +219,9 @@ static PHP_METHOD(pqcopy, end) { php_pqcopy_object_t *obj = zend_object_store_get_object(getThis() TSRMLS_CC); if (!obj->intern) { - throw_exce(EX_RUNTIME TSRMLS_CC, "pq\\COPY not intitialized"); + throw_exce(EX_UNINITIALIZED TSRMLS_CC, "pq\\COPY not intitialized"); } else if (obj->intern->direction != PHP_PQCOPY_FROM_STDIN) { - throw_exce(EX_RUNTIME TSRMLS_CC, "pq\\COPY was not intitialized with FROM_STDIN"); + throw_exce(EX_BAD_METHODCALL TSRMLS_CC, "pq\\COPY was not intitialized with FROM_STDIN"); } else { if (1 != PQputCopyEnd(obj->intern->conn->intern->conn, error_str)) { throw_exce(EX_RUNTIME TSRMLS_CC, "Failed to end COPY (%s)", PHP_PQerrorMessage(obj->intern->conn->intern->conn)); @@ -247,7 +247,7 @@ ZEND_END_ARG_INFO(); static PHP_METHOD(pqcopy, get) { zend_error_handling zeh; zval *zdata; - STATUS rv; + ZEND_RESULT_CODE rv; zend_replace_error_handling(EH_THROW, exce(EX_INVALID_ARGUMENT), &zeh TSRMLS_CC); rv = zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &zdata); @@ -308,6 +308,12 @@ static zend_function_entry php_pqcopy_methods[] = { {0} }; +PHP_MSHUTDOWN_FUNCTION(pqcopy) +{ + zend_hash_destroy(&php_pqcopy_object_prophandlers); + return SUCCESS; +} + PHP_MINIT_FUNCTION(pqcopy) { zend_class_entry ce = {0}; @@ -322,6 +328,8 @@ PHP_MINIT_FUNCTION(pqcopy) php_pqcopy_object_handlers.write_property = php_pq_object_write_prop; php_pqcopy_object_handlers.clone_obj = NULL; php_pqcopy_object_handlers.get_property_ptr_ptr = NULL; + php_pqcopy_object_handlers.get_gc = NULL; + php_pqcopy_object_handlers.get_properties = php_pq_object_properties; php_pqcopy_object_handlers.get_debug_info = php_pq_object_debug_info; zend_hash_init(&php_pqcopy_object_prophandlers, 4, NULL, NULL, 1);