logo       
Google Custom Search
    AddThis Social Bookmark Button
-->

cvs: ZendEngine2 / zend_object_handlers.c: msg#00041

Subject: cvs: ZendEngine2 / zend_object_handlers.c
dmitry          Fri Aug 12 08:58:42 2005 EDT

  Modified files:              
    /ZendEngine2        zend_object_handlers.c 
  Log:
  Fixed support fot provate properties in unicode mode.
  
  
http://cvs.php.net/diff.php/ZendEngine2/zend_object_handlers.c?r1=1.137&r2=1.138&ty=u
Index: ZendEngine2/zend_object_handlers.c
diff -u ZendEngine2/zend_object_handlers.c:1.137 
ZendEngine2/zend_object_handlers.c:1.138
--- ZendEngine2/zend_object_handlers.c:1.137    Fri Aug 12 07:29:26 2005
+++ ZendEngine2/zend_object_handlers.c  Fri Aug 12 08:58:41 2005
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: zend_object_handlers.c,v 1.137 2005/08/12 11:29:26 dmitry Exp $ */
+/* $Id: zend_object_handlers.c,v 1.138 2005/08/12 12:58:41 dmitry Exp $ */
 
 #include "zend.h"
 #include "zend_globals.h"
@@ -182,9 +182,10 @@
        zend_bool denied_access = 0;
        ulong h;
 
-       if (Z_STRVAL_P(member)[0] == '\0') {
+       if ((Z_TYPE_P(member) == IS_UNICODE && Z_USTRVAL_P(member)[0] == 0) ||
+           Z_STRVAL_P(member)[0] == '\0') {
                if (!silent) {
-                       if (Z_STRLEN_P(member) == 0) {
+                       if (Z_UNILEN_P(member) == 0) {
                                zend_error(E_ERROR, "Cannot access empty 
property");
                        } else {
                                zend_error(E_ERROR, "Cannot access property 
started with '\\0'");
@@ -192,8 +193,8 @@
                }
                return NULL;                            
        }
-       h = zend_get_hash_value(Z_STRVAL_P(member), Z_STRLEN_P(member) + 1);
-       if (zend_hash_quick_find(&ce->properties_info, Z_STRVAL_P(member), 
Z_STRLEN_P(member)+1, h, (void **) &property_info)==SUCCESS) {
+       h = zend_u_get_hash_value(Z_TYPE_P(member), Z_UNIVAL_P(member), 
Z_UNILEN_P(member) + 1);
+       if (zend_u_hash_quick_find(&ce->properties_info, Z_TYPE_P(member), 
Z_UNIVAL_P(member), Z_UNILEN_P(member)+1, h, (void **) 
&property_info)==SUCCESS) {
                if(property_info->flags & ZEND_ACC_SHADOW) {
                        /* if it's a shadow - go to access it's private */
                        property_info = NULL;

-- 
Zend Engine CVS Mailing List (http://cvs.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php




<Prev in Thread] Current Thread [Next in Thread>