On Sun, 2004-02-29 at 18:10, Timm Friebe wrote:
> Hi,
[...]
> Was this an intentional change?

zend_execute.h, lines 95 - 98:

    case IS_OBJECT:
        /* OBJ-TBI */
        result = 1;
        break;

I have a patch, but that includes a TSRMLS_FETCH() - maybe it would be
wise to change:

  ZEND_API int zend_is_true(zval *op);

to 

  ZEND_API int zend_is_true(zval *op TSRMLS_DC);

but that breaks the API.

- Timm
Index: Zend/zend_execute.h
===================================================================
RCS file: /repository/ZendEngine2/zend_execute.h,v
retrieving revision 1.68
diff -u -r1.68 zend_execute.h
--- Zend/zend_execute.h	12 Feb 2004 10:38:14 -0000	1.68
+++ Zend/zend_execute.h	29 Feb 2004 17:45:40 -0000
@@ -93,8 +93,12 @@
 			result = (zend_hash_num_elements(op->value.ht)?1:0);
 			break;
 		case IS_OBJECT:
-			/* OBJ-TBI */
-			result = 1;
+			if (!op->value.obj.handlers->get_properties) {
+				result = 1;     /* Unknown */
+			} else {
+				TSRMLS_FETCH();
+				result = (zend_hash_num_elements(op->value.obj.handlers->get_properties(op TSRMLS_CC)) ? 1 : 0);
+            }
 			break;
 		default:
 			result = 0;

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

Reply via email to