Skip to content

Commit

Permalink
Top removal: NewMuAnyScalar
Browse files Browse the repository at this point in the history
  • Loading branch information
sorear committed Nov 13, 2012
1 parent f2586f9 commit 3ffe64c
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 11 deletions.
4 changes: 2 additions & 2 deletions lib/CodeGen.cs
Expand Up @@ -2504,7 +2504,7 @@ class NamProcessor {
} else if ((flags & Parameter.IS_LIST) != 0) { } else if ((flags & Parameter.IS_LIST) != 0) {
init = CpsOp.MethodCall(Tokens.Kernel_CreateArray); init = CpsOp.MethodCall(Tokens.Kernel_CreateArray);
} else if (type == null) { } else if (type == null) {
init = CpsOp.MethodCall(Tokens.Kernel_NewMuAnyScalar); init = CpsOp.MethodCall(Tokens.Kernel_NewMuAnyScalar, CpsOp.CallFrame());
} else { } else {
init = CpsOp.MethodCall(Tokens.Kernel_NewTypedScalar, init = CpsOp.MethodCall(Tokens.Kernel_NewTypedScalar,
eu.TypeConstant(type)); eu.TypeConstant(type));
Expand Down Expand Up @@ -2853,7 +2853,7 @@ class NamProcessor {
return CpsOp.MethodCall(Tokens.Kernel_NewTypedScalar, return CpsOp.MethodCall(Tokens.Kernel_NewTypedScalar,
(CpsOp)z[1]); }; (CpsOp)z[1]); };
thandlers["newblankrwscalar"] = delegate(CpsOp[] z) { thandlers["newblankrwscalar"] = delegate(CpsOp[] z) {
return CpsOp.MethodCall(Tokens.Kernel_NewMuAnyScalar); }; return CpsOp.MethodCall(Tokens.Kernel_NewMuAnyScalar, CpsOp.CallFrame()); };
// XXX - wrong order - problem? // XXX - wrong order - problem?
thandlers["fvarlist_item"] = delegate(CpsOp[] z) { thandlers["fvarlist_item"] = delegate(CpsOp[] z) {
return CpsOp.Operator(Tokens.Variable, OpCodes.Ldelem_Ref, return CpsOp.Operator(Tokens.Variable, OpCodes.Ldelem_Ref,
Expand Down
22 changes: 13 additions & 9 deletions lib/Kernel.cs
Expand Up @@ -165,7 +165,7 @@ public class ArrayViviHook : ViviHook {
public override void Do(Variable toviv) { public override void Do(Variable toviv) {
VarDeque vd = (VarDeque) ary.GetSlot(ary.mo.setting.ListMO, "$!items"); VarDeque vd = (VarDeque) ary.GetSlot(ary.mo.setting.ListMO, "$!items");
while (vd.Count() <= key) while (vd.Count() <= key)
vd.Push(Kernel.NewMuAnyScalar()); vd.Push(ary.mo.setting.NewMuAnyScalar());
vd[key] = toviv; vd[key] = toviv;
} }
public override void Freeze(FreezeBuffer fb) { public override void Freeze(FreezeBuffer fb) {
Expand All @@ -190,7 +190,7 @@ public class NewArrayViviHook : ViviHook {
public override void Do(Variable toviv) { public override void Do(Variable toviv) {
VarDeque vd = new VarDeque(); VarDeque vd = new VarDeque();
while (vd.Count() <= key) while (vd.Count() <= key)
vd.Push(Kernel.NewMuAnyScalar()); vd.Push(mo.setting.NewMuAnyScalar());
vd[key] = toviv; vd[key] = toviv;
P6opaque d = new P6opaque(mo); P6opaque d = new P6opaque(mo);
d.slots[0] = vd; d.slots[0] = vd;
Expand Down Expand Up @@ -1293,7 +1293,7 @@ public class LISimple : LIVarish {
else if ((flags & HASH) != 0) else if ((flags & HASH) != 0)
Set(f, owner.setting.CreateHash()); Set(f, owner.setting.CreateHash());
else else
Set(f, type == null ? Kernel.NewMuAnyScalar() : Kernel.NewTypedScalar(type)); Set(f, type == null ? owner.setting.NewMuAnyScalar() : Kernel.NewTypedScalar(type));
} }
} }


Expand Down Expand Up @@ -2778,7 +2778,7 @@ public class Frame: P6any, IFixup {
src = Kernel.Assign(setting.CreateArray(), src = Kernel.Assign(setting.CreateArray(),
Kernel.NewRWListVar(src.Fetch())); Kernel.NewRWListVar(src.Fetch()));
else else
src = Kernel.Assign(type == null ? Kernel.NewMuAnyScalar() : Kernel.NewTypedScalar(type), src); src = Kernel.Assign(type == null ? setting.NewMuAnyScalar() : Kernel.NewTypedScalar(type), src);
} else { } else {
bool islist = ((flags & (Parameter.IS_HASH | Parameter.IS_LIST)) != 0); bool islist = ((flags & (Parameter.IS_HASH | Parameter.IS_LIST)) != 0);
bool rw = ((flags & Parameter.READWRITE) != 0) && !islist; bool rw = ((flags & Parameter.READWRITE) != 0) && !islist;
Expand Down Expand Up @@ -4125,7 +4125,7 @@ class IxListBindPos : BindHandler {
if (ix < 0) if (ix < 0)
throw new NieczaException("binding to out of range slot " + ix); throw new NieczaException("binding to out of range slot " + ix);
while (items.Count() <= ix) { while (items.Count() <= ix) {
items.Push(Kernel.NewMuAnyScalar()); items.Push(setting.NewMuAnyScalar());
} }
return items[ix] = to; return items[ix] = to;
} }
Expand Down Expand Up @@ -4704,7 +4704,7 @@ public class Compartment {
return CreateArray(); return CreateArray();
if (name.Length >= 1 && name[0] == '%') if (name.Length >= 1 && name[0] == '%')
return CreateHash(); return CreateHash();
return Kernel.NewMuAnyScalar(); return NewMuAnyScalar();
} }


public static Variable StashyMerge(Variable o, Variable n, string d1, string d2) { public static Variable StashyMerge(Variable o, Variable n, string d1, string d2) {
Expand Down Expand Up @@ -4738,12 +4738,16 @@ public class Compartment {
} else if (name.StartsWith("%")) { } else if (name.StartsWith("%")) {
v.v = CreateHash(); v.v = CreateHash();
} else { } else {
v.v = Kernel.NewMuAnyScalar(); v.v = NewMuAnyScalar();
} }


return v; return v;
} }


public Variable NewMuAnyScalar() {
return new RWVariable(null, null, AnyMO.typeObj);
}

// Produce a number from an int // Produce a number from an int
public Variable MakeInt(int v) { public Variable MakeInt(int v) {
return Kernel.BoxAnyMO<int>(v, IntMO); return Kernel.BoxAnyMO<int>(v, IntMO);
Expand Down Expand Up @@ -5413,8 +5417,8 @@ internal class MMDCandidate : MultiCandidate {
return new RWVariable(null, null, obj); return new RWVariable(null, null, obj);
} }


public static Variable NewMuAnyScalar() { public static Variable NewMuAnyScalar(Frame f) {
return new RWVariable(null, null, Compartment.Top.AnyMO.typeObj); return new RWVariable(null, null, f.info.setting.AnyMO.typeObj);
} }


public static Variable NewTypedScalar(STable t) { public static Variable NewTypedScalar(STable t) {
Expand Down

0 comments on commit 3ffe64c

Please sign in to comment.