import director_pass_by_value | |
passByVal = None | |
class director_pass_by_value_Derived(director_pass_by_value.DirectorPassByValueAbstractBase): | |
def virtualMethod(self, b): | |
global passByVal | |
passByVal = b | |
# bug was the passByVal global object was destroyed after the call to virtualMethod had finished. | |
director_pass_by_value.Caller().call_virtualMethod(director_pass_by_value_Derived()) | |
ret = passByVal.getVal(); | |
if ret != 0x12345678: | |
raise RuntimeError("Bad return value, got " + hex(ret)) |