public void ToTypedReference(VMContext ctx, TypedRefPtr typedRef, Type type) { if (_ptr != null) { *(TypedReference *)typedRef = *(TypedReference *)_ptr.Value; } else { *(PseudoTypedRef *)typedRef = _typedRef; } }
public unsafe void ToTypedReferenceObject(TypedRefPtr typedRef, Type type) { if (o is ValueType && type.IsValueType) { TypedReferenceHelpers.UnboxTypedRef(o, typedRef); } else { *(TypedReference *)typedRef = __makeref(o); } }
public void ToTypedReference(uint pos, TypedRefPtr typedRef, Type type) { if (pos > topPos) { throw new ExecutionEngineException(); } var section = sections[(int)(pos >> SectionSize)]; uint index = pos & IndexMask; if (type.IsEnum) { type = Enum.GetUnderlyingType(type); } if (type.IsPrimitive || type.IsPointer) { section[index].ToTypedReferencePrimitive(typedRef); TypedReferenceHelpers.CastTypedRef(typedRef, type); } else { section[index].ToTypedReferenceObject(typedRef, type); } }
public void ToTypedReference(VMContext ctx, TypedRefPtr typedRef, Type type) { TypedReferenceHelpers.MakeTypedRef(ptr, typedRef, type); }
public unsafe void ToTypedReferencePrimitive(TypedRefPtr typedRef) { *(TypedReference *)typedRef = __makeref(u4); }
public void ToTypedReference(VMContext ctx, TypedRefPtr typedRef, Type type) { ctx.Stack.ToTypedReference(StackPos, typedRef, type); }
public void ToTypedReference(VMContext ctx, TypedRefPtr typedRef, Type type) { TypedReferenceHelpers.GetFieldAddr(ctx, instance, field, typedRef); }
public TypedRef(TypedRefPtr ptr) { _ptr = ptr; }