You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
by-ref.angle-axis=> (angle-axis-1 (Quaternion/Euler (v3101010)))
[16.78646 (0.6, 0.5, 0.5)]
by-ref.angle-axis=> (angle-axis-2 (Quaternion/Euler (v3101010)))
System.NullReferenceException: Object reference not set to an instance of an object
at (wrapper stelemref) object:stelemref (object,intptr,object)
at by_ref/angle_axis$angle_axis_2__30.invoke (System.Object ) [0x00000] in <filename unknown>:0
at by_ref/angle_axis$eval__71__76.invoke () [0x00000] in <filename unknown>:0
at clojure.lang.Compiler.eval (System.Object form) [0x00000] in <filename unknown>:0
at clojure.lang.Compiler.eval (System.Object form) [0x00000] in <filename unknown>:0
at clojure/core$eval__49976.invoke (System.Object ) [0x00000] in <filename unknown>:0
at arcadia/repl$repl_eval_print$fn__892__896.invoke () [0x00000] in <filename unknown>:0
at arcadia/repl$repl_eval_print__899.invoke (System.Object , System.Object ) [0x00000] in <filename unknown>:0
at arcadia/repl$repl_eval_string__915.invoke (System.Object , System.Object ) [0x00000] in <filename unknown>:0
at arcadia/repl$repl_eval_string__915.invoke (System.Object ) [0x00000] in <filename unknown>:0
at arcadia/repl$eval_queue$fn__923__927.invoke () [0x00000] in <filename unknown>:0
The only substantive difference in the IL of the two functions is the type-hinting on axis.
For angle-axis-1:
...
public override object invoke (object obj)
{
float num = RT.floatCast (0L);
Vector3 zero = Vector3.zero;
((Quaternion)obj).ToAngleAxis (out num, out zero);
return RT.vector (new object[]
{
num,
zero
});
}
...
axis corresponding to zero here.
For angle-axis-2:
...
public override object invoke (object obj)
{
float num = RT.floatCast (0L);
object obj2 = ((IFn)by_ref/angle_axis$angle_axis_2__30.const__2.getRawRoot ()).invoke (by_ref/angle_axis$angle_axis_2__30.const__3, by_ref/angle_axis$angle_axis_2__30.const__4, by_ref/angle_axis$angle_axis_2__30.const__5);
((Quaternion)obj).ToAngleAxis (out num, out obj2);
return RT.vector (new object[]
{
num,
obj2
});
}
...
axis corresponding to obj2. It looks like the by-ref form fails because the type of obj2 remains object, and no corrective cast is made.
The text was updated successfully, but these errors were encountered:
by-ref
parameters are broken. I suspect this has to do with the increasingly unacceptable absence of primitive locals.Given the following file:
we get the following behavior:
The only substantive difference in the IL of the two functions is the type-hinting on
axis
.For
angle-axis-1
:axis
corresponding tozero
here.For
angle-axis-2
:axis
corresponding toobj2
. It looks like theby-ref
form fails because the type ofobj2
remainsobject
, and no corrective cast is made.The text was updated successfully, but these errors were encountered: