projects
/
m6w6
/
ext-psi
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
cpp
[m6w6/ext-psi]
/
src
/
context.c
diff --git
a/src/context.c
b/src/context.c
index f10f4c49e76e288c38c3c1384c99939231750a33..199f533317ed7dfce6981ec01778a3fdfd819511 100644
(file)
--- a/
src/context.c
+++ b/
src/context.c
@@
-256,14
+256,7
@@
void psi_context_build(struct psi_context *C, const char *paths)
continue;
}
continue;
}
- while (0 < psi_parser_scan(&P)) {
- psi_parser_parse(&P, psi_token_alloc(&P));
- if (P.num == PSI_T_EOF) {
- break;
- }
- }
-
- psi_parser_parse(&P, NULL);
+ psi_parser_parse(&P);
psi_context_add_data(C, PSI_DATA(&P));
psi_parser_dtor(&P);
}
psi_context_add_data(C, PSI_DATA(&P));
psi_parser_dtor(&P);
}
@@
-341,7
+334,7
@@
zend_function_entry *psi_context_compile(struct psi_context *C)
zend_string *name = strpprintf(0, "psi\\%s\\%s", e->name, item->name);
zc.name = zend_string_dup(name, 1);
zend_string *name = strpprintf(0, "psi\\%s\\%s", e->name, item->name);
zc.name = zend_string_dup(name, 1);
- ZVAL_LONG(&zc.value, psi_long_num_exp(item->num, NULL));
+ ZVAL_LONG(&zc.value, psi_long_num_exp(item->num, NULL
, NULL
));
zend_register_constant(&zc);
zend_string_release(name);
}
zend_register_constant(&zc);
zend_string_release(name);
}
@@
-373,7
+366,22
@@
ZEND_RESULT_CODE psi_context_call(struct psi_context *C, zend_execute_data *exec
return FAILURE;
}
return FAILURE;
}
+ if (SUCCESS != psi_call_frame_do_assert(frame, PSI_ASSERT_PRE)) {
+ psi_call_frame_do_return(frame, return_value);
+ psi_call_frame_free(frame);
+
+ return FAILURE;
+ }
+
psi_call_frame_do_call(frame);
psi_call_frame_do_call(frame);
+
+ if (SUCCESS != psi_call_frame_do_assert(frame, PSI_ASSERT_POST)) {
+ psi_call_frame_do_return(frame, return_value);
+ psi_call_frame_free(frame);
+
+ return FAILURE;
+ }
+
psi_call_frame_do_return(frame, return_value);
psi_call_frame_do_set(frame);
psi_call_frame_do_free(frame);
psi_call_frame_do_return(frame, return_value);
psi_call_frame_do_set(frame);
psi_call_frame_do_free(frame);