X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=php_propro.c;h=0599b9a1f166c65dd0813f1945faf91e508cd21f;hb=24fb107f8255142e6d99682b533a5e4e5d29e292;hp=cb9f5fe95b31c4bd930ce4ea12949b72297e03c5;hpb=b401faa6060bd887e9cc00d0f30fb30a18546e0c;p=m6w6%2Fext-propro diff --git a/php_propro.c b/php_propro.c index cb9f5fe..0599b9a 100644 --- a/php_propro.c +++ b/php_propro.c @@ -20,7 +20,12 @@ #include "php_propro.h" -typedef int STATUS; +#if PHP_VERSION_ID < 50500 +typedef enum { + SUCCESS = 0, + FAILURE = -1 +} ZEND_RESULT_CODE; +#endif #define DEBUG_PROPRO 0 @@ -30,7 +35,7 @@ typedef int STATUS; (copy_ctor_func_t) zval_add_ref, NULL, sizeof(zval*)) #endif -PHP_PROPRO_API php_property_proxy_t *php_property_proxy_init(zval *container, +php_property_proxy_t *php_property_proxy_init(zval *container, const char *member_str, size_t member_len TSRMLS_DC) { php_property_proxy_t *proxy = ecalloc(1, sizeof(*proxy)); @@ -43,7 +48,7 @@ PHP_PROPRO_API php_property_proxy_t *php_property_proxy_init(zval *container, return proxy; } -PHP_PROPRO_API void php_property_proxy_free(php_property_proxy_t **proxy) +void php_property_proxy_free(php_property_proxy_t **proxy) { if (*proxy) { zval_ptr_dtor(&(*proxy)->container); @@ -56,13 +61,12 @@ PHP_PROPRO_API void php_property_proxy_free(php_property_proxy_t **proxy) static zend_class_entry *php_property_proxy_class_entry; static zend_object_handlers php_property_proxy_object_handlers; -PHP_PROPRO_API zend_class_entry *php_property_proxy_get_class_entry(void) +zend_class_entry *php_property_proxy_get_class_entry(void) { return php_property_proxy_class_entry; } -PHP_PROPRO_API zend_object_value php_property_proxy_object_new( - zend_class_entry *ce TSRMLS_DC) +zend_object_value php_property_proxy_object_new(zend_class_entry *ce TSRMLS_DC) { return php_property_proxy_object_new_ex(ce, NULL, NULL TSRMLS_CC); } @@ -87,9 +91,8 @@ static void php_property_proxy_object_free(void *object TSRMLS_DC) efree(o); } -PHP_PROPRO_API zend_object_value php_property_proxy_object_new_ex( - zend_class_entry *ce, php_property_proxy_t *proxy, - php_property_proxy_object_t **ptr TSRMLS_DC) +zend_object_value php_property_proxy_object_new_ex(zend_class_entry *ce, + php_property_proxy_t *proxy, php_property_proxy_object_t **ptr TSRMLS_DC) { php_property_proxy_object_t *o; @@ -184,7 +187,7 @@ static void debug_propro(int inout, const char *f, zval *object, zval *offset, static zval *get_parent_proxied_value(zval *object TSRMLS_DC); static zval *get_proxied_value(zval *object TSRMLS_DC); static zval *read_dimension(zval *object, zval *offset, int type TSRMLS_DC); -static STATUS cast_proxied_value(zval *object, zval *return_value, +static ZEND_RESULT_CODE cast_proxied_value(zval *object, zval *return_value, int type TSRMLS_DC); static void write_dimension(zval *object, zval *offset, zval *value TSRMLS_DC); static void set_proxied_value(zval **object, zval *value TSRMLS_DC); @@ -216,7 +219,7 @@ static zval *get_proxied_value(zval *object TSRMLS_DC) { zval **hash_value, *value = NULL; php_property_proxy_object_t *obj; - STATUS rv; + ZEND_RESULT_CODE rv; obj = zend_object_store_get_object(object TSRMLS_CC); debug_propro(1, "get", object, NULL, NULL TSRMLS_CC); @@ -255,7 +258,7 @@ static zval *get_proxied_value(zval *object TSRMLS_DC) return value; } -static STATUS cast_proxied_value(zval *object, zval *return_value, +static ZEND_RESULT_CODE cast_proxied_value(zval *object, zval *return_value, int type TSRMLS_DC) { zval *proxied_value; @@ -334,7 +337,7 @@ static zval *read_dimension(zval *object, zval *offset, int type TSRMLS_DC) if (BP_VAR_R == type && proxied_value) { if (Z_TYPE_P(proxied_value) == IS_ARRAY) { zval **hash_value; - STATUS rv = zend_symtable_find(Z_ARRVAL_P(proxied_value), + ZEND_RESULT_CODE rv = zend_symtable_find(Z_ARRVAL_P(proxied_value), Z_STRVAL_P(o), Z_STRLEN_P(o), (void *) &hash_value); if (SUCCESS == rv) { @@ -395,7 +398,7 @@ static int has_dimension(zval *object, zval *offset, int check_empty TSRMLS_DC) if (Z_TYPE_P(proxied_value) == IS_ARRAY) { zval **zentry; - STATUS rv = zend_symtable_find(Z_ARRVAL_P(proxied_value), Z_STRVAL_P(o), Z_STRLEN_P(o) + 1, (void *) &zentry); + ZEND_RESULT_CODE rv = zend_symtable_find(Z_ARRVAL_P(proxied_value), Z_STRVAL_P(o), Z_STRLEN_P(o) + 1, (void *) &zentry); if (SUCCESS != rv) { exists = 0; @@ -469,7 +472,7 @@ static void unset_dimension(zval *object, zval *offset TSRMLS_DC) if (proxied_value && Z_TYPE_P(proxied_value) == IS_ARRAY) { zval *o = offset; - STATUS rv; + ZEND_RESULT_CODE rv; convert_to_string_ex(&o); rv = zend_symtable_del(Z_ARRVAL_P(proxied_value), Z_STRVAL_P(o),