#38985 [Opn->Ctl]: Can't cast COM objects to boolean

From: Date: Fri, 06 Oct 2006 12:05:40 +0000
Subject: #38985 [Opn->Ctl]: Can't cast COM objects to boolean
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-103185@lists.php.net to get a copy of this message
ID: 38985 Updated by: wez@php.net Reported By: larry dot menard at rogers dot com -Status: Open +Status: Critical Bug Type: COM related Operating System: Windows XP, SP2 PHP Version: 5.2.0RC4 -Assigned To: +Assigned To: ilia New Comment: I think this one liner will do the job, but haven't been able to verify it: Index: com_handlers.c =================================================================== RCS file: /repository/php-src/ext/com_dotnet/com_handlers.c,v retrieving revision 1.37 diff -u -p -r1.37 com_handlers.c --- com_handlers.c 29 Apr 2006 18:45:29 -0000 1.37 +++ com_handlers.c 6 Oct 2006 12:03:31 -0000 @@ -539,7 +539,7 @@ static int com_object_cast(zval *readobj return SUCCESS; } - return FAILURE; + return zend_std_cast_object_tostring(readobj, writeobj, type TSRMLS_CC); } static int com_object_count(zval *object, long *count TSRMLS_DC) cvs diff: Diffing tests Previous Comments: ------------------------------------------------------------------------ [2006-10-06 06:48:00] tony2001@php.net No idea why it was assigned to me. I've never had win32 build env. ------------------------------------------------------------------------ [2006-10-06 01:17:16] wez@php.net batting back to you Tony; between moving offices this last week and a dead laptop I don't have a win32 build environment and won't have one in time to get this fixed for 5.2. As per our email discussion, I think the fix for this issue is to not return failure from the COM object cast handler in the case that we can't convert to variant bool, but to use regular PHP boolean cast at that point (after trying variant bool conversion) and returning success. ------------------------------------------------------------------------ [2006-09-28 19:55:41] larry dot menard at rogers dot com Description: ------------ First of all, I'm usng RC5, not RC4 (RC5 is not in the list above). Can't cast an object of type COM to boolean. Reproduce code: --------------- $dbc = new COM('WinNT://Domain'); var_dump((bool)$dbc); Expected result: ---------------- bool(true) Actual result: -------------- Catchable fatal error: Object of class com could not be converted to boolean ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=38985&edit=1

« previous php.bugs (#103185) next »