X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=http_querystring_object.c;h=4c82edabcff853fb0dfa9fe14886c9e0991b662f;hp=9c183f3957284f237cb33a634b44ec04a017f726;hb=refs%2Fheads%2Fv1.7.x;hpb=6da3520587f9f79c7429501289512d2a2415b517 diff --git a/http_querystring_object.c b/http_querystring_object.c index 9c183f3..4c82eda 100644 --- a/http_querystring_object.c +++ b/http_querystring_object.c @@ -6,7 +6,7 @@ | modification, are permitted provided that the conditions mentioned | | in the accompanying LICENSE file are met. | +--------------------------------------------------------------------+ - | Copyright (c) 2004-2007, Michael Wallner | + | Copyright (c) 2004-2010, Michael Wallner | +--------------------------------------------------------------------+ */ @@ -191,9 +191,14 @@ zend_object_value _http_querystring_object_new_ex(zend_class_entry *ce, void *no *ptr = o; } +#ifdef ZEND_ENGINE_2_4 + zend_object_std_init(o, ce TSRMLS_CC); + object_properties_init(o, ce); +#else ALLOC_HASHTABLE(OBJ_PROP(o)); zend_hash_init(OBJ_PROP(o), zend_hash_num_elements(&ce->default_properties), NULL, ZVAL_PTR_DTOR, 0); zend_hash_copy(OBJ_PROP(o), &ce->default_properties, (copy_ctor_func_t) zval_add_ref, NULL, sizeof(zval *)); +#endif ov.handle = putObject(http_querystring_object, o); ov.handlers = &http_querystring_object_handlers; @@ -285,10 +290,11 @@ static inline void _http_querystring_get(zval *this_ptr, int type, char *name, u zval **arrval, *qarray = zend_read_property(THIS_CE, getThis(), ZEND_STRS("queryArray")-1, 0 TSRMLS_CC); if ((Z_TYPE_P(qarray) == IS_ARRAY) && (SUCCESS == zend_hash_find(Z_ARRVAL_P(qarray), name, name_len + 1, (void *) &arrval))) { - RETVAL_ZVAL(*arrval, 1, 0); - if (type) { - convert_to_type(type, return_value); + zval *value = http_zsep(type, *arrval); + RETVAL_ZVAL(value, 1, 1); + } else { + RETVAL_ZVAL(*arrval, 1, 0); } if (del && (SUCCESS == zend_hash_del(Z_ARRVAL_P(qarray), name, name_len + 1))) { @@ -441,7 +447,7 @@ PHP_METHOD(HttpQueryString, mod) PHP_METHOD(HttpQueryString, singleton) { zend_bool global = 1; - zval *instance = *zend_std_get_static_property(THIS_CE, ZEND_STRS("instance")-1, 0 TSRMLS_CC); + zval *instance = *zend_std_get_static_property(THIS_CE, ZEND_STRS("instance")-1, 0 ZEND_LITERAL_NIL_CC TSRMLS_CC); SET_EH_THROW_HTTP(); if (SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|b", &global)) {