diff options
author | Andi Gutmans <andi@php.net> | 2005-01-22 02:29:18 +0000 |
---|---|---|
committer | Andi Gutmans <andi@php.net> | 2005-01-22 02:29:18 +0000 |
commit | 8838c0f860feed8acf116b726f2dfbcc432a87d1 (patch) | |
tree | 1f1a8751c3532534b18c6230510c1735912264b8 | |
parent | eba6a36290cbcf51cdea53f40647b92089bdd991 (diff) | |
download | php-git-8838c0f860feed8acf116b726f2dfbcc432a87d1.tar.gz |
- Two new API calls for Derick (retreive CV name and value) by Dmitry
-rw-r--r-- | Zend/zend_compile.c | 8 | ||||
-rw-r--r-- | Zend/zend_compile.h | 2 | ||||
-rw-r--r-- | Zend/zend_execute.c | 5 | ||||
-rw-r--r-- | Zend/zend_execute.h | 2 |
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 */ |