#23943 [Opn->Bgs]: REGISTER_*_CONSTANT and sizeof to calculate length of constant name

From: Date: Mon, 30 Jun 2003 01:09:49 +0000
Subject: #23943 [Opn->Bgs]: REGISTER_*_CONSTANT and sizeof to calculate length of constant name
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-42771@lists.php.net to get a copy of this message
ID: 23943 Updated by: iliaa@php.net Reported By: eddie at omegaware dot com -Status: Open +Status: Bogus Bug Type: Scripting Engine problem PHP Version: 4.3.2 New Comment: Thank you for taking the time to write to us, but this is not a bug. Please double-check the documentation available at http://www.php.net/manual/ and the instructions on how to report a bug at http://bugs.php.net/how-to-report.php If the name of the constant is variable as it happens if your situations you should use zend_register function as you have already figured out. This is not a bug. Previous Comments: ------------------------------------------------------------------------ [2003-06-01 21:20:46] sniper@php.net Nevermind.. ------------------------------------------------------------------------ [2003-06-01 20:37:31] sniper@php.net Because the macro expects static string. Not bug. ------------------------------------------------------------------------ [2003-06-01 18:35:40] eddie at omegaware dot com fixed the summary field.. ------------------------------------------------------------------------ [2003-06-01 18:33:14] eddie at omegaware dot com Is there any reason why the REGISTER_*_CONSTANT macros (ie REGISTER_LONG_CONSTANT) use sizeof instead of strlen for calculating the length of the constant name? I am running into problems which resort to me having to not use this macros to define functions but to use the raw zend_register_*_constant function.. example. using the macro with a literal string for the name works fine. REGISTER_LONG_CONSTANT("MYCONSTANT",4567,CONST_CS|CONST_PERISISTENT); however using the macro with a char * variable does not. char *name = "MYCONSTANT"; REGISTER_LONG_CONSTANT(name,4567,CONST_CS|CONST_PERSISTENT); The later results with the name_len variable to zend_register_long_contant being 4, the size of the char *. This has caused me problems when I was trying to register a char* array of constants. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=23943&edit=1

« previous php.bugs (#42771) next »