projects
/
m6w6
/
ext-psi
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
fix package.xml
[m6w6/ext-psi]
/
src
/
call.c
diff --git
a/src/call.c
b/src/call.c
index 22516c77cf7f2280d627fc6bffbd745f9b19868b..704675c91f444abab532f63f0447fdabfcf68096 100644
(file)
--- a/
src/call.c
+++ b/
src/call.c
@@
-23,14
+23,20
@@
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*******************************************************************************/
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*******************************************************************************/
-#include "php_psi_stdinc.h"
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#else
+# include "php_config.h"
+#endif
+
#include "context.h"
#include "data.h"
#include "call.h"
#include "context.h"
#include "data.h"
#include "call.h"
+#include "php_psi.h"
+
#include "php.h"
#include "zend_exceptions.h"
#include "php.h"
#include "zend_exceptions.h"
-#include "ext/spl/spl_exceptions.h"
struct psi_call_frame_argument *psi_call_frame_argument_init(struct psi_impl_arg *spec,
impl_val *ival, zval *zptr, int is_vararg) {
struct psi_call_frame_argument *psi_call_frame_argument_init(struct psi_impl_arg *spec,
impl_val *ival, zval *zptr, int is_vararg) {
@@
-199,7
+205,7
@@
zval *psi_call_frame_sub_argument(struct psi_call_frame *frame,
if (!iarg) {
struct psi_call_frame_argument *frame_arg;
impl_val empty_val = {0};
if (!iarg) {
struct psi_call_frame_argument *frame_arg;
impl_val empty_val = {0};
- zend_string *type_str =
zend
_string_init_interned(ZEND_STRL("mixed"), 1);
+ zend_string *type_str =
psi
_string_init_interned(ZEND_STRL("mixed"), 1);
struct psi_impl_arg *carg_spec = psi_impl_arg_init(
psi_impl_type_init(PSI_T_MIXED, type_str),
psi_impl_var_copy(inner_var), NULL);
struct psi_impl_arg *carg_spec = psi_impl_arg_init(
psi_impl_type_init(PSI_T_MIXED, type_str),
psi_impl_var_copy(inner_var), NULL);
@@
-256,7
+262,7
@@
struct psi_context *psi_call_frame_get_context(struct psi_call_frame *frame) {
#else
# define PARAM_PROLOGUE(separate) Z_PARAM_PROLOGUE(1, separate)
#endif
#else
# define PARAM_PROLOGUE(separate) Z_PARAM_PROLOGUE(1, separate)
#endif
-
ZEND_RESULT_CODE
psi_call_frame_parse_args(struct psi_call_frame *frame,
+
bool
psi_call_frame_parse_args(struct psi_call_frame *frame,
zend_execute_data *execute_data) {
size_t i, argc = psi_plist_count(frame->impl->func->args);
zend_error_handling zeh;
zend_execute_data *execute_data) {
size_t i, argc = psi_plist_count(frame->impl->func->args);
zend_error_handling zeh;
@@
-268,7
+274,7
@@
ZEND_RESULT_CODE psi_call_frame_parse_args(struct psi_call_frame *frame,
rv = zend_parse_parameters_none();
zend_restore_error_handling(&zeh);
rv = zend_parse_parameters_none();
zend_restore_error_handling(&zeh);
- return rv;
+ return rv
== SUCCESS
;
}
ZEND_PARSE_PARAMETERS_START(
}
ZEND_PARSE_PARAMETERS_START(
@@
-334,7
+340,7
@@
ZEND_RESULT_CODE psi_call_frame_parse_args(struct psi_call_frame *frame,
}
ZEND_PARSE_PARAMETERS_END_EX(
zend_restore_error_handling(&zeh);
}
ZEND_PARSE_PARAMETERS_END_EX(
zend_restore_error_handling(&zeh);
- return
FAILURE
;
+ return
false
;
);
/* set up defaults */
);
/* set up defaults */
@@
-349,7
+355,7
@@
ZEND_RESULT_CODE psi_call_frame_parse_args(struct psi_call_frame *frame,
}
zend_restore_error_handling(&zeh);
}
zend_restore_error_handling(&zeh);
- return
SUCCESS
;
+ return
true
;
}
void psi_call_frame_enter(struct psi_call_frame *frame) {
}
void psi_call_frame_enter(struct psi_call_frame *frame) {
@@
-371,7
+377,7
@@
void psi_call_frame_enter(struct psi_call_frame *frame) {
frame->rpointer = rv_sym->ptr = rv_sym->ival_ptr;
}
frame->rpointer = rv_sym->ptr = rv_sym->ival_ptr;
}
-
ZEND_RESULT_CODE
psi_call_frame_do_let(struct psi_call_frame *frame) {
+
bool
psi_call_frame_do_let(struct psi_call_frame *frame) {
size_t i;
struct psi_let_stmt *let;
struct psi_decl_arg *arg;
size_t i;
struct psi_let_stmt *let;
struct psi_decl_arg *arg;
@@
-417,27
+423,23
@@
ZEND_RESULT_CODE psi_call_frame_do_let(struct psi_call_frame *frame) {
}
}
}
}
- return
SUCCESS
;
+ return
true
;
}
}
-
ZEND_RESULT_CODE
psi_call_frame_do_assert(struct psi_call_frame *frame, enum psi_assert_kind kind) {
+
bool
psi_call_frame_do_assert(struct psi_call_frame *frame, enum psi_assert_kind kind) {
size_t i = 0;
struct psi_assert_stmt *ass;
while (psi_plist_get(frame->impl->stmts.ass, i++, &ass)) {
if (ass->kind == kind) {
if (!psi_assert_stmt_exec(ass, frame)) {
size_t i = 0;
struct psi_assert_stmt *ass;
while (psi_plist_get(frame->impl->stmts.ass, i++, &ass)) {
if (ass->kind == kind) {
if (!psi_assert_stmt_exec(ass, frame)) {
- char *message = psi_assert_stmt_message(ass);
- zend_throw_exception(kind == PSI_ASSERT_PRE
- ? spl_ce_InvalidArgumentException
- : spl_ce_UnexpectedValueException, message, 0);
- free(message);
- return FAILURE;
+ psi_assert_stmt_throw(ass);
+ return false;
}
}
}
}
}
}
- return
SUCCESS
;
+ return
true
;
}
void psi_call_frame_do_call(struct psi_call_frame *frame) {
}
void psi_call_frame_do_call(struct psi_call_frame *frame) {
@@
-477,6
+479,7
@@
void psi_call_frame_do_callback(struct psi_call_frame *frame, struct psi_call_fr
rc = zend_fcall_info_call(&frame_arg->ival_ptr->zend.cb->fci,
&frame_arg->ival_ptr->zend.cb->fcc, &return_value, NULL);
assert(rc == SUCCESS);
rc = zend_fcall_info_call(&frame_arg->ival_ptr->zend.cb->fci,
&frame_arg->ival_ptr->zend.cb->fcc, &return_value, NULL);
assert(rc == SUCCESS);
+ (void) rc;
/* marshal return value of the userland call */
frame_arg->zval_ptr = &return_value;
/* marshal return value of the userland call */
frame_arg->zval_ptr = &return_value;
@@
-536,8
+539,6
@@
static void psi_call_frame_local_auto_dtor(void *auto_list)
efree(auto_list);
}
efree(auto_list);
}
-#include "php_psi.h"
-
void psi_call_frame_free(struct psi_call_frame *frame) {
zend_hash_destroy(&frame->arguments);
zend_hash_destroy(&frame->symbols);
void psi_call_frame_free(struct psi_call_frame *frame) {
zend_hash_destroy(&frame->arguments);
zend_hash_destroy(&frame->symbols);