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

Reply via email to