Search Issue Tracker

Fixed

Fixed in 6000.2.8f1, 6000.3.0b4, 6000.4.0a2

Votes

1

Found in

6000.2.2f1

6000.3.0a6

Issue ID

UUM-115835

Regression

Yes

Ref parameter address mismatch when invoking a default interface method with multiple ref arguments

-

How to reproduce:
1. Open the project “IN-112154_repro_arg_corruption”
2. Open the Test Runner tab, Window → General → Test Runner
3. Select PlayMode in the Test Runner tab
4. Run all tests or just the “Specific_Bug” test
5. Observe the output of the test in the Test Runner, under the tests

Expected result: The test succeeds and the result of all the variable addresses match from v0 to v7
Actual: The test fails, at least one variable’s logged address does not match its expected address

Reproducible with: 6000.2.0b10, 6000.2.2f1, 6000.3.0a6
Not reproducible with: 6000.0.56f1, 6000.2.0b9

Reproducible on: Windows 11
Not reproducible on: No other environments tested

  1. Resolution Note:

    The test case is invalid as there is an error in the script
    ```
    WhereAt(ref v7, "v7");
    if (v0 != 0x01234500) throw new Exception("v0 is incorrect");
    if (v1 != 0x01234501) throw new Exception("v1 is incorrect");
    if (v2 != 0x01234502) throw new Exception("v2 is incorrect");
    if (v3 != 0x01234503) throw new Exception("v3 is incorrect");
    if (v4 != 0x01234504) throw new Exception("v4 is incorrect");
    if (v5 != 0x01234505) throw new Exception("v5 is incorrect");
    if (v6 != 0x01234506) throw new Exception("v6 is incorrect");
    -->> if (v6 != 0x01234507) throw new Exception("v7 is incorrect");
    ```

    the comparison is done with the wrong variable, when the script code is updated to ` if (v7 != 0x01234507) throw new Exception("v7 is incorrect");` there is no error and `ref` feature in C# works as expected

Add comment

Log in to post comment