Edit report at http://bugs.php.net/bug.php?id=54328&edit=1

 ID:                 54328
 Updated by:         cataphr...@php.net
 Reported by:        zhangsilly at gmail dot com
 Summary:            $PHP_PREFIX/include/php/ext/standard/php_smart_str.h
                     has error
-Status:             Open
+Status:             Bogus
 Type:               Bug
 Package:            Compile Failure
 Operating System:   Windows & Linux
 PHP Version:        5.3.6
 Block user comment: N
 Private report:     N

 New Comment:

SMART_STR_REALLOC expands to a function a function that returns void*. C
(but not C++) allows conversion of void* to any pointer type, so the
current code is correct. You're probably compiling your project as C++.


Previous Comments:
------------------------------------------------------------------------
[2011-03-21 03:21:50] zhangsilly at gmail dot com

Description:
------------
in the file $PHP_PREFIX/include/php/ext/standard/php_smart_str.h ,line
52, 

should have a pointer conversion.



now the code is below:



#define SMART_STR_DO_REALLOC(d, what) \

        (d)->c = SMART_STR_REALLOC((d)->c, (d)->a + 1, (what))



but any extensions include it cann't be compiled before change the code
above 

like this, no matter the compiler is visual studio(2005 or 2008) or
gcc:



#define SMART_STR_DO_REALLOC(d, what) \

        (d)->c = (char*) SMART_STR_REALLOC((d)->c, (d)->a + 1, (what))



everytime I change it myself.But event the newest PHP 5.3.6, the pointer


conversion is still absent.



------------------------------------------------------------------------



-- 
Edit this bug report at http://bugs.php.net/bug.php?id=54328&edit=1

Reply via email to