| <?php |
| |
| require "tests.php"; |
| require "director_pass_by_value.php"; |
| |
| $passByVal = null; |
| |
| class director_pass_by_value_Derived extends DirectorPassByValueAbstractBase { |
| function virtualMethod($b) { |
| global $passByVal; |
| $passByVal = $b; |
| } |
| } |
| |
| # bug was the passByVal global object was destroyed after the call to virtualMethod had finished. |
| $caller = new Caller(); |
| $caller->call_virtualMethod(new director_pass_by_value_Derived()); |
| $ret = $passByVal->getVal(); |
| if ($ret != 0x12345678) { |
| check::fail("Bad return value, got " . dechex($ret)); |
| } |
| |
| check::done(); |
| ?> |