Skip to content

Commit bec0b28

Browse files
committed
Correct string->rotation cast failure semantics in LSL
1 parent ad2d4ed commit bec0b28

2 files changed

Lines changed: 2 additions & 0 deletions

File tree

VM/src/llsl.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -407,6 +407,7 @@ static int _lsl_cast_internal(lua_State* L, bool in_list, bool neg_zero, bool ni
407407
return 1;
408408
}
409409
memset(quat, 0, sizeof(float) * 4);
410+
quat[3] = 1.0f;
410411
}
411412
luaSL_pushquaternion(L, quat[0], quat[1], quat[2], quat[3]);
412413
return 1;

tests/conformance/conformance1.lsl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -523,6 +523,7 @@ tests()
523523
ensureFloatEqual("((float) \"1.5\")", ((float) "1.5"), 1.5);
524524
ensureVectorEqual("((vector) \"<1,2,3>\")", ((vector) "<1,2,3>"), <1,2,3>);
525525
ensureRotationEqual("((quaternion) \"<1,2,3,4>\")", ((quaternion) "<1,2,3,4>"), <1,2,3,4>);
526+
ensureRotationEqual("((quaternion) \"foo\")", ((quaternion) "foo"), ZERO_ROTATION);
526527
ensureStringEqual("((string) <1,2,3>)", ((string) <1,2,3>), "<1.00000, 2.00000, 3.00000>");
527528
ensureStringEqual("((string) <1,2,3,4>)", ((string) <1,2,3,4>), "<1.00000, 2.00000, 3.00000, 4.00000>");
528529
ensureStringEqual("((string) [1,2.5,<1,2,3>])", ((string) [1,2.5,<1,2,3>]), "12.500000<1.000000, 2.000000, 3.000000>");

0 commit comments

Comments
 (0)