assert(ops->call != NULL);
assert(ops->compile != NULL);
- /* build up predefs in a temporary PSI_Data for validation */
+ /* build up predefs in a temporary psi_data for validation */
memset(&T, 0, sizeof(T));
psi_data_ctor_with_dtors(&T, error, flags);
name = strpprintf(0, "psi\\%s\\%s", e->name, item->name);
}
+ if (zend_get_constant(name)) {
+ zend_string_release(name);
+ continue;
+ }
+
zc.name = zend_string_dup(name, 1);
ZVAL_LONG(&zc.value, psi_long_num_exp(item->num, NULL, NULL));
zend_register_constant(&zc);
return FAILURE;
}
- psi_call_frame_do_call(frame);
+ C->ops->call(frame);
if (SUCCESS != psi_call_frame_do_assert(frame, PSI_ASSERT_POST)) {
psi_call_frame_do_return(frame, return_value);