-
- public override void CacheTemporaries (EmitContext ec)
- {
- if (!FieldInfo.IsStatic && (temporary == null))
- temporary = new LocalTemporary (ec, instance_expr.Type);
- }
-
- void EmitInstance (EmitContext ec)
- {
- if (instance_expr.Type.IsValueType)
- CacheTemporaries (ec);
-
- if ((temporary == null) || have_temporary)
- return;
-
- if (instance_expr.Type.IsValueType) {
- instance_ml = instance_expr as IMemoryLocation;
- if (instance_ml == null) {
- instance_expr.Emit (ec);
- temporary.Store (ec);
- instance_ml = temporary;
- }
- } else {
- instance_expr.Emit (ec);
- temporary.Store (ec);
- }
-
- have_temporary = true;
- }
-
- override public void Emit (EmitContext ec)