Skip to content

Commit 396b470

Browse files
committed
Use zpp C in pg_fetch_object
1 parent 670036e commit 396b470

File tree

2 files changed

+9
-10
lines changed

2 files changed

+9
-10
lines changed

ext/pgsql/pgsql.c

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2480,19 +2480,11 @@ static void php_pgsql_fetch_hash(INTERNAL_FUNCTION_PARAMETERS, zend_long result_
24802480
zend_class_entry *ce = NULL;
24812481

24822482
if (into_object) {
2483-
zend_string *class_name = NULL;
2484-
2485-
if (zend_parse_parameters(ZEND_NUM_ARGS(), "r|z!Sz", &result, &zrow, &class_name, &ctor_params) == FAILURE) {
2483+
if (zend_parse_parameters(ZEND_NUM_ARGS(), "r|z!Cz", &result, &zrow, &ce, &ctor_params) == FAILURE) {
24862484
RETURN_THROWS();
24872485
}
2488-
if (!class_name) {
2489-
ce = zend_standard_class_def;
2490-
} else {
2491-
ce = zend_fetch_class(class_name, ZEND_FETCH_CLASS_AUTO);
2492-
}
24932486
if (!ce) {
2494-
php_error_docref(NULL, E_WARNING, "Could not find class '%s'", ZSTR_VAL(class_name));
2495-
return;
2487+
ce = zend_standard_class_def;
24962488
}
24972489
result_type = PGSQL_ASSOC;
24982490
} else {

ext/pgsql/tests/22pg_fetch_object.phpt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,12 @@ $rows = pg_num_rows($result);
2222

2323
var_dump(pg_fetch_object($result, NULL, 'test_class', array(1, 2)));
2424

25+
try {
26+
var_dump(pg_fetch_object($result, NULL, 'does_not_exist'));
27+
} catch (TypeError $e) {
28+
echo $e->getMessage(), "\n";
29+
}
30+
2531
echo "Ok\n";
2632
?>
2733
--EXPECT--
@@ -34,4 +40,5 @@ object(test_class)#1 (3) {
3440
["bin"]=>
3541
NULL
3642
}
43+
pg_fetch_object(): Argument #3 ($class_name) must be a valid class name, does_not_exist given
3744
Ok

0 commit comments

Comments
 (0)