summaryrefslogtreecommitdiff
path: root/Zend/zend_API.h
diff options
context:
space:
mode:
authorMarcus Boerger <helly@php.net>2006-06-07 09:43:54 +0000
committerMarcus Boerger <helly@php.net>2006-06-07 09:43:54 +0000
commit64c353ab79e3a49ae2aba533d353d4a93fe4b099 (patch)
treec462411f5fbb0d02143964910563642c93c1b9a3 /Zend/zend_API.h
parent1f93575c88fff9e05e1904ba02d0975ab33f0c67 (diff)
downloadphp-git-64c353ab79e3a49ae2aba533d353d4a93fe4b099.tar.gz
- MFH zend_fcall_info_*() and parameter parsing option 'f'
# Right now i see this as the best option but we might shuffle code around # later if someone comes up with a better solution.
Diffstat (limited to 'Zend/zend_API.h')
-rw-r--r--Zend/zend_API.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/Zend/zend_API.h b/Zend/zend_API.h
index 2669ea216c..89c62e6d26 100644
--- a/Zend/zend_API.h
+++ b/Zend/zend_API.h
@@ -385,6 +385,26 @@ typedef struct _zend_fcall_info_cache {
BEGIN_EXTERN_C()
ZEND_API extern zend_fcall_info_cache empty_fcall_info_cache;
+/** Build zend_call_info/cache from a zval*
+ *
+ * Caller is responsible to provide a return value, otherwise the we will crash.
+ * fci->retval_ptr_ptr = NULL;
+ * In order to pass parameters the following members need to be set:
+ * fci->param_count = 0;
+ * fci->params = NULL;
+ */
+ZEND_API int zend_fcall_info_init(zval *callable, zend_fcall_info *fci, zend_fcall_info_cache *fcc TSRMLS_DC);
+
+/** Set or clear the arguments in the zend_call_info struct taking care of
+ * refcount. If args is NULL and arguments are set then those are cleared.
+ */
+ZEND_API int zend_fcall_info_args(zend_fcall_info *fci, zval *args TSRMLS_DC);
+
+/** Call a function using information created by zend_fcall_info_init()/args().
+ * If args is given then those replace the arguement info in fci is temporarily.
+ */
+ZEND_API int zend_fcall_info_call(zend_fcall_info *fci, zend_fcall_info_cache *fcc, zval **retval, zval *args TSRMLS_DC);
+
ZEND_API int zend_call_function(zend_fcall_info *fci, zend_fcall_info_cache *fci_cache TSRMLS_DC);