Index: ext/standard/php_incomplete_class.h =================================================================== RCS file: /repository/php4/ext/standard/php_incomplete_class.h,v retrieving revision 1.10 diff -u -r1.10 php_incomplete_class.h --- ext/standard/php_incomplete_class.h 31 Dec 2002 16:07:52 -0000 1.10 +++ ext/standard/php_incomplete_class.h 22 May 2003 21:34:17 -0000 @@ -26,14 +26,29 @@ #define PHP_IC_ENTRY \ BG(incomplete_class) -#define PHP_SET_CLASS_ATTRIBUTES(struc) \ - /* OBJECTS_FIXME: Fix for new object model */ \ - if (Z_OBJCE_P(struc) == BG(incomplete_class)) { \ - class_name = php_lookup_class_name(struc, &name_len, 1); \ - free_class_name = 1; \ - } else { \ - class_name = Z_OBJCE_P(struc)->name; \ - name_len = Z_OBJCE_P(struc)->name_length; \ +#define PHP_SET_CLASS_ATTRIBUTES(struc) \ + if (Z_OBJCE_P(struc) == BG(incomplete_class)) { \ + class_name = php_lookup_class_name(struc, &name_len, 1); \ + free_class_name = 1; \ + } else { \ + if (Z_OBJ_HT_P(struc)->get_class_name == NULL || \ + Z_OBJ_HT_P(struc)->get_class_name(struc, &class_name, &name_len, 0 TSRMLS_CC) != SUCCESS) { \ + zend_class_entry *ce; \ + ce = zend_get_class_entry(struc TSRMLS_CC); \ + if (!ce) { \ + class_name = php_lookup_class_name(struc, &name_len, 1); \ + free_class_name = 1; \ + } \ + if (ce->ns) { \ + zend_make_full_classname(ce, &class_name, &name_len); \ + free_class_name = 1; \ + } else { \ + class_name = Z_OBJCE_P(struc)->name; \ + name_len = Z_OBJCE_P(struc)->name_length; \ + } \ + } else { \ + free_class_name = 1; \ + } \ } #define PHP_CLEANUP_CLASS_ATTRIBUTES() \