summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndi Gutmans <andi@php.net>2005-01-22 02:29:18 +0000
committerAndi Gutmans <andi@php.net>2005-01-22 02:29:18 +0000
commit8838c0f860feed8acf116b726f2dfbcc432a87d1 (patch)
tree1f1a8751c3532534b18c6230510c1735912264b8
parenteba6a36290cbcf51cdea53f40647b92089bdd991 (diff)
downloadphp-git-8838c0f860feed8acf116b726f2dfbcc432a87d1.tar.gz
- Two new API calls for Derick (retreive CV name and value) by Dmitry
-rw-r--r--Zend/zend_compile.c8
-rw-r--r--Zend/zend_compile.h2
-rw-r--r--Zend/zend_execute.c5
-rw-r--r--Zend/zend_execute.h2
4 files changed, 17 insertions, 0 deletions
diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c
index 466748b052..b893b12fb1 100644
--- a/Zend/zend_compile.c
+++ b/Zend/zend_compile.c
@@ -3864,6 +3864,14 @@ int zend_get_class_fetch_type(char *class_name, uint class_name_len)
}
}
+ZEND_API char* zend_get_compiled_variable_name(zend_op_array *op_array, zend_uint var, int* name_len)
+{
+ if (name_len) {
+ *name_len = op_array->vars[var].name_len;
+ }
+ return op_array->vars[var].name;
+}
+
/*
* Local variables:
* tab-width: 4
diff --git a/Zend/zend_compile.h b/Zend/zend_compile.h
index d72a5008e4..825ffca758 100644
--- a/Zend/zend_compile.h
+++ b/Zend/zend_compile.h
@@ -319,6 +319,8 @@ ZEND_API void zend_restore_compiled_filename(char *original_compiled_filename TS
ZEND_API char *zend_get_compiled_filename(TSRMLS_D);
ZEND_API int zend_get_compiled_lineno(TSRMLS_D);
+ZEND_API char* zend_get_compiled_variable_name(zend_op_array *op_array, zend_uint var, int* name_len);
+
#ifdef ZTS
const char *zend_get_zendtext(TSRMLS_D);
int zend_get_zendleng(TSRMLS_D);
diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c
index 43479ff463..4676b317d4 100644
--- a/Zend/zend_execute.c
+++ b/Zend/zend_execute.c
@@ -144,6 +144,11 @@ static inline void zend_pzval_unlock_free_func(zval *z)
#define CV_OF(i) (EG(current_execute_data)->CVs[i])
#define CV_DEF_OF(i) (EG(active_op_array)->vars[i])
+ZEND_API zval** zend_get_compiled_variable_value(zend_execute_data *execute_data_ptr, zend_uint var)
+{
+ return execute_data_ptr->CVs[var];
+}
+
static inline void zend_get_cv_address(zend_compiled_variable *cv, zval ***ptr, temp_variable *Ts TSRMLS_DC)
{
zval *new_zval = &EG(uninitialized_zval);
diff --git a/Zend/zend_execute.h b/Zend/zend_execute.h
index 76355b21e6..7e96ecc39f 100644
--- a/Zend/zend_execute.h
+++ b/Zend/zend_execute.h
@@ -174,6 +174,8 @@ void zend_shutdown_timeout_thread();
*/
#define Z_OBJ_CLASS_NAME_P(zval) ((zval) && (zval)->type == IS_OBJECT && Z_OBJ_HT_P(zval)->get_class_entry != NULL && Z_OBJ_HT_P(zval)->get_class_entry(zval TSRMLS_CC) ? Z_OBJ_HT_P(zval)->get_class_entry(zval TSRMLS_CC)->name : "")
+ZEND_API zval** zend_get_compiled_variable_value(zend_execute_data *execute_data_ptr, zend_uint var);
+
END_EXTERN_C()
#endif /* ZEND_EXECUTE_H */