Anonymous | Login | Signup for a new account | 12-17-2024 11:45 PST |
Main | My View | View Issues | Change Log | Docs |
Viewing Issue Advanced Details [ Jump to Notes ] | [ View Simple ] [ Issue History ] [ Print ] | ||||||||
ID | Category | Severity | Reproducibility | Date Submitted | Last Update | ||||
0001886 | [Quercus] | major | always | 07-19-07 18:28 | 07-20-07 08:19 | ||||
Reporter | rjc | View Status | public | ||||||
Assigned To | sam | ||||||||
Priority | normal | Resolution | fixed | Platform | |||||
Status | closed | OS | |||||||
Projection | none | OS Version | |||||||
ETA | none | Fixed in Version | 3.1.2 | Product Version | 3.1.1 | ||||
Product Build | |||||||||
Summary | 0001886: Assignments to function parameters cause local variables to be created which shadow the parameters ONLY IN COMPILED PHP | ||||||||
Description |
In MediaWiki Parser.php, there is a function extractTagsAndParams with the following signature: function extractTagsAndParams($elements, $text, &$matches, $uniq_prefix = ''){ static $n = 1; $stripped = ''; $matches = array(); as you can see, $matches is in fact, a variable array passed by reference. In interpreted mode, this works as expected and the array passed as a parameter is assigned an empty array. In compiled mode, the line "$matches = array()" actually creates a new local variable with an empty array which shadows the $matches parameter. Any further modifications to $matches only effect the local copy. I suspect this is because the Java scoping semantics are coming into play with the generated code. |
||||||||
Steps To Reproduce | |||||||||
Additional Information | |||||||||
Attached Files | |||||||||
|
Mantis 1.0.0rc3[^]
Copyright © 2000 - 2005 Mantis Group
30 total queries executed. 26 unique queries executed. |