summaryrefslogtreecommitdiff
path: root/ext/pgsql
diff options
context:
space:
mode:
authorNikita Popov <nikita.ppv@gmail.com>2020-08-13 16:24:08 +0200
committerNikita Popov <nikita.ppv@gmail.com>2020-08-13 16:24:08 +0200
commit396b47061f40b9a624b1dee7c018de08acd02836 (patch)
treecd2aa08a4c7ed1dc88e1dd068be6f9c896ab9695 /ext/pgsql
parent670036e2a9b4520b8cb14be41625664f96bae4b4 (diff)
downloadphp-git-396b47061f40b9a624b1dee7c018de08acd02836.tar.gz
Use zpp C in pg_fetch_object
Diffstat (limited to 'ext/pgsql')
-rw-r--r--ext/pgsql/pgsql.c12
-rw-r--r--ext/pgsql/tests/22pg_fetch_object.phpt7
2 files changed, 9 insertions, 10 deletions
diff --git a/ext/pgsql/pgsql.c b/ext/pgsql/pgsql.c
index 6ffe0efd84..d2876573bc 100644
--- a/ext/pgsql/pgsql.c
+++ b/ext/pgsql/pgsql.c
@@ -2480,19 +2480,11 @@ static void php_pgsql_fetch_hash(INTERNAL_FUNCTION_PARAMETERS, zend_long result_
zend_class_entry *ce = NULL;
if (into_object) {
- zend_string *class_name = NULL;
-
- if (zend_parse_parameters(ZEND_NUM_ARGS(), "r|z!Sz", &result, &zrow, &class_name, &ctor_params) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS(), "r|z!Cz", &result, &zrow, &ce, &ctor_params) == FAILURE) {
RETURN_THROWS();
}
- if (!class_name) {
- ce = zend_standard_class_def;
- } else {
- ce = zend_fetch_class(class_name, ZEND_FETCH_CLASS_AUTO);
- }
if (!ce) {
- php_error_docref(NULL, E_WARNING, "Could not find class '%s'", ZSTR_VAL(class_name));
- return;
+ ce = zend_standard_class_def;
}
result_type = PGSQL_ASSOC;
} else {
diff --git a/ext/pgsql/tests/22pg_fetch_object.phpt b/ext/pgsql/tests/22pg_fetch_object.phpt
index 9f9319bcfe..22c90c4c3c 100644
--- a/ext/pgsql/tests/22pg_fetch_object.phpt
+++ b/ext/pgsql/tests/22pg_fetch_object.phpt
@@ -22,6 +22,12 @@ $rows = pg_num_rows($result);
var_dump(pg_fetch_object($result, NULL, 'test_class', array(1, 2)));
+try {
+ var_dump(pg_fetch_object($result, NULL, 'does_not_exist'));
+} catch (TypeError $e) {
+ echo $e->getMessage(), "\n";
+}
+
echo "Ok\n";
?>
--EXPECT--
@@ -34,4 +40,5 @@ object(test_class)#1 (3) {
["bin"]=>
NULL
}
+pg_fetch_object(): Argument #3 ($class_name) must be a valid class name, does_not_exist given
Ok