[prev in list] [next in list] [prev in thread] [next in thread]
List: pecl-cvs
Subject: [PECL-CVS] cvs: pecl /http http_querystring_api.c php_http_querystring_api.h
From: "Michael Wallner" <mike () php ! net>
Date: 2006-04-22 21:17:42
Message-ID: cvsmike1145740662 () cvsserver
[Download RAW message or body]
mike Sat Apr 22 21:17:42 2006 UTC
Modified files:
/pecl/http http_querystring_api.c php_http_querystring_api.h
Log:
- inline http_querystring_modify_array(_ex) functions
http://cvs.php.net/viewcvs.cgi/pecl/http/http_querystring_api.c?r1=1.1&r2=1.2&diff_format=u
Index: pecl/http/http_querystring_api.c
diff -u pecl/http/http_querystring_api.c:1.1 pecl/http/http_querystring_api.c:1.2
--- pecl/http/http_querystring_api.c:1.1 Sat Apr 22 21:04:37 2006
+++ pecl/http/http_querystring_api.c Sat Apr 22 21:17:42 2006
@@ -10,7 +10,7 @@
+--------------------------------------------------------------------+
*/
-/* $Id: http_querystring_api.c,v 1.1 2006/04/22 21:04:37 mike Exp $ */
+/* $Id: http_querystring_api.c,v 1.2 2006/04/22 21:17:42 mike Exp $ */
#define HTTP_WANT_SAPI
#include "php_http.h"
@@ -31,6 +31,13 @@
extern zend_class_entry *http_querystring_object_ce;
#endif
+
+#define http_querystring_modify_array_ex(q, t, k, kl, i, pe) \
_http_querystring_modify_array_ex((q), (t), (k), (kl), (i), (pe) TSRMLS_CC) +static \
inline int _http_querystring_modify_array_ex(zval *qarray, int key_type, char *key, \
int keylen, ulong idx, zval *params_entry TSRMLS_DC); +#define \
http_querystring_modify_array(q, p) _http_querystring_modify_array((q), (p) \
TSRMLS_CC) +static inline int _http_querystring_modify_array(zval *qarray, zval \
*params TSRMLS_DC); +
+
#ifdef HAVE_ICONV
PHP_HTTP_API int _http_querystring_xlate(zval *array, zval *param, const char *ie, \
const char *oe TSRMLS_DC) {
@@ -105,7 +112,58 @@
}
}
-PHP_HTTP_API int _http_querystring_modify_array_ex(zval *qarray, int key_type, char \
*key, int keylen, ulong idx, zval *params_entry TSRMLS_DC) +PHP_HTTP_API int \
_http_querystring_modify(zval *qarray, zval *params TSRMLS_DC) +{
+ if (Z_TYPE_P(params) == IS_ARRAY) {
+ return http_querystring_modify_array(qarray, params);
+ } else if (Z_TYPE_P(params) == IS_OBJECT) {
+#ifdef ZEND_ENGINE_2
+ if (!instanceof_function(Z_OBJCE_P(params), http_querystring_object_ce TSRMLS_CC)) \
{ +#endif
+ zval temp_array;
+ INIT_ZARR(temp_array, HASH_OF(params));
+ return http_querystring_modify_array(qarray, &temp_array);
+#ifdef ZEND_ENGINE_2
+ }
+ return http_querystring_modify_array(qarray, GET_PROP_EX(params, queryArray));
+#endif
+ } else {
+ int rv;
+ zval array;
+
+ INIT_PZVAL(&array);
+ array_init(&array);
+
+ ZVAL_ADDREF(params);
+ convert_to_string_ex(¶ms);
+ sapi_module.treat_data(PARSE_STRING, estrdup(Z_STRVAL_P(params)), &array \
TSRMLS_CC); + zval_ptr_dtor(¶ms);
+ rv = http_querystring_modify_array(qarray, &array);
+ zval_dtor(&array);
+ return rv;
+ }
+}
+
+static inline int _http_querystring_modify_array(zval *qarray, zval *params \
TSRMLS_DC) +{
+ int rv = 0;
+ char *key = NULL;
+ uint keylen = 0;
+ ulong idx = 0;
+ HashPosition pos;
+ zval **params_entry = NULL;
+
+ FOREACH_KEYLENVAL(pos, params, key, keylen, idx, params_entry) {
+ if (http_querystring_modify_array_ex(qarray, key ? HASH_KEY_IS_STRING : \
HASH_KEY_IS_LONG, key, keylen, idx, *params_entry)) { + rv = 1;
+ }
+ key = NULL;
+ }
+
+ return rv;
+}
+
+static inline int _http_querystring_modify_array_ex(zval *qarray, int key_type, char \
*key, int keylen, ulong idx, zval *params_entry TSRMLS_DC) {
zval **qarray_entry;
@@ -143,57 +201,6 @@
return 1;
}
-PHP_HTTP_API int _http_querystring_modify_array(zval *qarray, zval *params \
TSRMLS_DC)
-{
- int rv = 0;
- char *key = NULL;
- uint keylen = 0;
- ulong idx = 0;
- HashPosition pos;
- zval **params_entry = NULL;
-
- FOREACH_KEYLENVAL(pos, params, key, keylen, idx, params_entry) {
- if (http_querystring_modify_array_ex(qarray, key ? HASH_KEY_IS_STRING : \
HASH_KEY_IS_LONG, key, keylen, idx, *params_entry)) {
- rv = 1;
- }
- key = NULL;
- }
-
- return rv;
-}
-
-PHP_HTTP_API int _http_querystring_modify(zval *qarray, zval *params TSRMLS_DC)
-{
- if (Z_TYPE_P(params) == IS_ARRAY) {
- return http_querystring_modify_array(qarray, params);
- } else if (Z_TYPE_P(params) == IS_OBJECT) {
-#ifdef ZEND_ENGINE_2
- if (!instanceof_function(Z_OBJCE_P(params), http_querystring_object_ce TSRMLS_CC)) \
{
-#endif
- zval temp_array;
- INIT_ZARR(temp_array, HASH_OF(params));
- return http_querystring_modify_array(qarray, &temp_array);
-#ifdef ZEND_ENGINE_2
- }
- return http_querystring_modify_array(qarray, GET_PROP_EX(params, queryArray));
-#endif
- } else {
- int rv;
- zval array;
-
- INIT_PZVAL(&array);
- array_init(&array);
-
- ZVAL_ADDREF(params);
- convert_to_string_ex(¶ms);
- sapi_module.treat_data(PARSE_STRING, estrdup(Z_STRVAL_P(params)), &array \
TSRMLS_CC);
- zval_ptr_dtor(¶ms);
- rv = http_querystring_modify_array(qarray, &array);
- zval_dtor(&array);
- return rv;
- }
-}
-
/*
* Local variables:
* tab-width: 4
http://cvs.php.net/viewcvs.cgi/pecl/http/php_http_querystring_api.h?r1=1.1&r2=1.2&diff_format=u
Index: pecl/http/php_http_querystring_api.h
diff -u pecl/http/php_http_querystring_api.h:1.1 \
pecl/http/php_http_querystring_api.h:1.2
--- pecl/http/php_http_querystring_api.h:1.1 Sat Apr 22 21:04:37 2006
+++ pecl/http/php_http_querystring_api.h Sat Apr 22 21:17:42 2006
@@ -10,7 +10,7 @@
+--------------------------------------------------------------------+
*/
-/* $Id: php_http_querystring_api.h,v 1.1 2006/04/22 21:04:37 mike Exp $ */
+/* $Id: php_http_querystring_api.h,v 1.2 2006/04/22 21:17:42 mike Exp $ */
#ifndef PHP_HTTP_QUERYSTRING_API_H
#define PHP_HTTP_QUERYSTRING_API_H
@@ -23,12 +23,6 @@
#define http_querystring_update(qa, qs) _http_querystring_update((qa), (qs) \
TSRMLS_CC) PHP_HTTP_API void _http_querystring_update(zval *qarray, zval *qstring \
TSRMLS_DC);
-#define http_querystring_modify_array_ex(q, t, k, kl, i, pe) \
_http_querystring_modify_array_ex((q), (t), (k), (kl), (i), (pe) \
TSRMLS_CC)
-PHP_HTTP_API int _http_querystring_modify_array_ex(zval *qarray, int key_type, char \
*key, int keylen, ulong idx, zval *params_entry TSRMLS_DC);
-
-#define http_querystring_modify_array(q, p) _http_querystring_modify_array((q), (p) \
TSRMLS_CC)
-PHP_HTTP_API int _http_querystring_modify_array(zval *qarray, zval *params \
TSRMLS_DC);
-
#define http_querystring_modify(q, p) _http_querystring_modify((q), (p) TSRMLS_CC)
PHP_HTTP_API int _http_querystring_modify(zval *qarray, zval *params TSRMLS_DC);
--
PECL CVS Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic