From: SourceForge.net <no...@so...> - 2011-03-12 01:39:05
|
Bugs item #3202463, was opened at 2011-03-08 15:09 Message generated for change (Comment added) made by olly You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=101645&aid=3202463&group_id=1645 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: php Group: None >Status: Closed Resolution: None Priority: 5 Private: No Submitted By: Mike Leahy (mgleahy) Assigned to: Olly Betts (olly) Summary: PHP swig_runtime_data_type_pointer already defined... Initial Comment: When more than one swig module is loaded in PHP, notices will be raised that state: PHP Notice: Constant swig_runtime_data_type_pointer already defined in Unknown on line 0 I find that this is a result of the following line that is written to the *_wrap.c* files: static char const_name[] = "swig_runtime_data_type_pointer"; In my hacking attempts, I tried appending a unique suffix on the end of the string for each module I was compiling, and found that this eliminated the notices. Although notices are relatively harmless, and can be turned off in PHP, this can be disruptive in debugging situations where PHP errors and notices are useful. The notices are generated when the modules are loaded in PHP at startup...so I don't know of a way suppress the notices in PHP code. Searching online and mentioning this on the PHP mailing list hasn't revealed an alternative method. ---------------------------------------------------------------------- >Comment By: Olly Betts (olly) Date: 2011-03-12 14:39 Message: Fixed in SVN r12528. ---------------------------------------------------------------------- Comment By: Olly Betts (olly) Date: 2011-03-12 14:26 Message: OK, there's already a check that it's set before we try to set it - the bug is that we're trying to read the constant back with a nul byte on the end of the name, but we set it without the nul byte, so we think it isn't set. Will commit a fix. ---------------------------------------------------------------------- Comment By: Olly Betts (olly) Date: 2011-03-12 14:08 Message: I found the details in Doc/Devel/runtime.txt - it should be common to all modules: The SetModule function should store the mod argument into some globally accessible variable in the target language. The action of these two functions is to provide a way for multiple modules to share information. So renaming the constant in each module is the wrong way to address this. ---------------------------------------------------------------------- Comment By: Olly Betts (olly) Date: 2011-03-12 14:05 Message: I'm not completely sure if this should be shared across modules (in which case we probably want to check if it already exists when creating it) or if it should be per module (in which case we want to encode the module name into the constant name, or else put the constant in the module namespace). ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=101645&aid=3202463&group_id=1645 |