Hello Sebastian,
Wednesday, September 22, 2004, 9:52:18 PM, you wrote:
> For quite a while I have been fighting with what I believe to be a bug in
> the Zend Engine 2.
> In PHPUnit2 I have the following code:
> public function run(PHPUnit2_Framework_Test $test) {
> // $test->name: string(14) "testGetBalance"
> $this->startTest($test);
> try {
> // $test->name: string(14) "testGetBalance"
> $test->runBare();
> }
> catch (PHPUnit2_Framework_AssertionFailedError $e) {
> // $test->name: string(14) "testgetbalance"
> $this->addFailure($test, $e);
> }
> catch (Exception $e) {
> // $test->name: string(14) "testgetbalance"
> $this->addError($test, $e);
> }
> // $test->name: string(14) "testgetbalance"
> $this->endTest($test);
> }
> The object referenced by the variable $test has a private attribute
> called "name". The value of this attribute somehow get lowercased
> when the object is used inside the catch-block.
> My effort to come up with a small, reproducing script for this issue
> has yet to bear fruit as the obvious approach
> <?php
> class Foo {
> private $bar = 'BAR';
> }
> class Bar {
> public function doSomething(Foo $foo) {
> var_dump($foo);
> try {
> var_dump($foo);
> throw new Exception('...');
> }
> catch (Exception $e) {
> var_dump($foo);
> }
> var_dump($foo);
> }
> }
> $f = new Foo;
> $b = new Bar;
> $b->doSomething($f);
> ?>
> does not show the problem.
> Any idea what I might be missing here? Is there some way to debug the
> engine to see where the lowercasing happens?
> Thanks!
> --
> Sebastian Bergmann http://www.sebastian-bergmann.de/
> GnuPG Key: 0xB85B5D69 / 27A7 2B14 09E4 98CD 6277 0E5B 6867 C514 B85B 5D69
Disallow inlining and set a breakpoint on zend_str_tolower_copy() is most
likely responsible for downcasing if the engine is the problem....
Best regards,
Marcus mailto:[EMAIL PROTECTED]
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php