Yes, just moving the ARRAY cases in zend_API.c and zend_variables.c
stopped the error, and so far it *seems* to work. that can't be
real fix, but i hope it is helpful (diffs attached)

Brad Bulger wrote:
this is with current php-src: it looks related to recent changes to zend_API, maybe, i haven't tracked it down yet, figured someone here
could do that faster - and fix it too, heh:


  sh-2.05a# php -v
  PHP 5.0.0b2-dev (cli) (built: Aug 24 2003 12:40:08) (DEBUG)

sh-2.05a# php -r 'class foo { var $x = array(); }'

Fatal error: Internal zval's can't be arrays, objects or resources in Unknown on line 0

Index: zend_API.c
===================================================================
RCS file: /repository/ZendEngine2/zend_API.c,v
retrieving revision 1.210
diff -u -r1.210 zend_API.c
--- zend_API.c  24 Aug 2003 18:47:11 -0000      1.210
+++ zend_API.c  24 Aug 2003 22:03:31 -0000
@@ -1630,12 +1630,12 @@
                target_symbol_table = &ce->default_properties;
        }
        switch(Z_TYPE_P(property)) {
-               case IS_ARRAY:
-               case IS_CONSTANT_ARRAY:
                case IS_OBJECT:
                case IS_RESOURCE:
-                       zend_error(E_CORE_ERROR, "Internal zval's can't be arrays, 
objects or resources");
+                       zend_error(E_CORE_ERROR, "zend_API: Internal zval's can't be 
arrays, objects or resources");
                        break;
+               case IS_ARRAY:
+               case IS_CONSTANT_ARRAY:
                default:
                        break;
        }
Index: zend_variables.c
===================================================================
RCS file: /repository/ZendEngine2/zend_variables.c,v
retrieving revision 1.53
diff -u -r1.53 zend_variables.c
--- zend_variables.c    24 Aug 2003 17:32:47 -0000      1.53
+++ zend_variables.c    24 Aug 2003 22:03:55 -0000
@@ -90,12 +90,12 @@
                                free(zvalue->value.str.val);
                        }
                        break;
-               case IS_ARRAY:
-               case IS_CONSTANT_ARRAY:
                case IS_OBJECT:
                case IS_RESOURCE:
-                       zend_error(E_CORE_ERROR, "Internal zval's can't be arrays, 
objects or resources");
+                       zend_error(E_CORE_ERROR, "zend_variables: Internal zval's 
can't be arrays, objects or resources");
                        break;
+               case IS_ARRAY:
+               case IS_CONSTANT_ARRAY:
                case IS_LONG:
                case IS_DOUBLE:
                case IS_BOOL:

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to