pollita Sun Jan 5 17:24:49 2003 EDT
Modified files:
/php4/ext/standard user_filters.c file.c
Log:
Fixes to stream_get_wrappers() and stream_get_filters() handle hash table layouts
better, plus some picune whitespace fixes
Index: php4/ext/standard/user_filters.c
diff -u php4/ext/standard/user_filters.c:1.4 php4/ext/standard/user_filters.c:1.5
--- php4/ext/standard/user_filters.c:1.4 Sat Jan 4 22:24:38 2003
+++ php4/ext/standard/user_filters.c Sun Jan 5 17:24:49 2003
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: user_filters.c,v 1.4 2003/01/05 03:24:38 pollita Exp $ */
+/* $Id: user_filters.c,v 1.5 2003/01/05 22:24:49 pollita Exp $ */
#include "php.h"
#include "php_globals.h"
@@ -416,16 +416,22 @@
PHP_FUNCTION(stream_get_filters)
{
char *filter_name;
- int filter_name_len = 0;
+ int key_flags, filter_name_len = 0;
+
+ if (ZEND_NUM_ARGS() != 0) {
+ WRONG_PARAM_COUNT;
+ }
array_init(return_value);
if (BG(user_filter_map)) {
for(zend_hash_internal_pointer_reset(BG(user_filter_map));
- zend_hash_get_current_key_ex(BG(user_filter_map),
&filter_name, &filter_name_len, NULL, 0, NULL) == HASH_KEY_IS_STRING;
+ (key_flags = zend_hash_get_current_key_ex(BG(user_filter_map),
+&filter_name, &filter_name_len, NULL, 0, NULL)) != HASH_KEY_NON_EXISTANT;
zend_hash_move_forward(BG(user_filter_map)))
- add_next_index_string(return_value, filter_name, 1);
+ if (key_flags == HASH_KEY_IS_STRING)
+ add_next_index_stringl(return_value,
+filter_name, filter_name_len, 1);
}
+ /* It's okay to return an empty array if no filters are registered */
}
/* }}} */
Index: php4/ext/standard/file.c
diff -u php4/ext/standard/file.c:1.287 php4/ext/standard/file.c:1.288
--- php4/ext/standard/file.c:1.287 Fri Jan 3 13:33:28 2003
+++ php4/ext/standard/file.c Sun Jan 5 17:24:49 2003
@@ -21,7 +21,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: file.c,v 1.287 2003/01/03 18:33:28 iliaa Exp $ */
+/* $Id: file.c,v 1.288 2003/01/05 22:24:49 pollita Exp $ */
/* Synced with php 3.0 revision 1.218 1999-06-16 [ssb] */
@@ -633,7 +633,7 @@
{
HashTable *url_stream_wrappers_hash;
char *stream_protocol;
- int stream_protocol_len = 0;
+ int key_flags, stream_protocol_len = 0;
if (ZEND_NUM_ARGS() != 0) {
WRONG_PARAM_COUNT;
@@ -642,9 +642,10 @@
if (url_stream_wrappers_hash = php_stream_get_url_stream_wrappers_hash()) {
array_init(return_value);
for(zend_hash_internal_pointer_reset(url_stream_wrappers_hash);
- zend_hash_get_current_key_ex(url_stream_wrappers_hash,
&stream_protocol, &stream_protocol_len, NULL, 0, NULL) == HASH_KEY_IS_STRING;
+ (key_flags =
+zend_hash_get_current_key_ex(url_stream_wrappers_hash, &stream_protocol,
+&stream_protocol_len, NULL, 0, NULL)) != HASH_KEY_NON_EXISTANT;
zend_hash_move_forward(url_stream_wrappers_hash))
- add_next_index_string(return_value,stream_protocol,1);
+ if (key_flags == HASH_KEY_IS_STRING)
+ add_next_index_stringl(return_value,
+stream_protocol, stream_protocol_len, 1);
} else {
RETURN_FALSE;
}
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php