public static ValList Create(int capacity = 0) { //Console.WriteLine("ValList create cap = " + capacity + " ID " + _num); if (_valuePool == null) { _valuePool = new ValuePool <ValList>(); } else { ValList existing = _valuePool.GetInstance(); if (existing != null) { existing._refCount = 1; existing.EnsureCapacity(capacity); #if MINISCRIPT_DEBUG existing._id = _num++; #endif return(existing); } } #if MINISCRIPT_DEBUG _numInstancesAllocated++; #endif return(new ValList(capacity, true)); }
protected override void ReturnToPool() { if (!base._poolable) { return; } if (_valuePool == null) { _valuePool = new ValuePool <ValString>(); } _valuePool.ReturnToPool(this); }
protected override void ReturnToPool() { if (!base._poolable) { return; } if (_valuePool == null) { _valuePool = new ValuePool <ValList>(); } _valuePool.ReturnToPool(this); //Console.WriteLine("ValList #" + _id + " returned"); }
protected override void ReturnToPool() { //Console.WriteLine("Returning ValMap ID " + _id); if (!base._poolable) { return; } if (_valuePool == null) { _valuePool = new ValuePool <ValMap>(); } _valuePool.ReturnToPool(this); }
public static ValNumber Create(double value) { //Console.WriteLine("Alloc num " + value + " ID " + (_num)); #if MINISCRIPT_DEBUG _instances.Add(_num); #endif // Use a predefined static for common values switch (value) { case -1: return(_negativeOne); case 0: return(_zero); case 1: return(_one); case 2: return(_two); case 3: return(_three); } if (_valuePool == null) { _valuePool = new ValuePool <ValNumber>(); } else { ValNumber val = _valuePool.GetInstance(); if (val != null) { val._refCount = 1; val.value = value; #if MINISCRIPT_DEBUG val._id = _num++; #endif return(val); } } #if MINISCRIPT_DEBUG _numInstancesAllocated++; #endif return(new ValNumber(value, true)); }
public bool noInvoke; // reflects use of "@" (address-of) operator public static ValSeqElem Create(Value sequence, Value index) { if (_valuePool == null) { _valuePool = new ValuePool <ValSeqElem>(); } else { ValSeqElem val = _valuePool.GetInstance(); if (val != null) { val.sequence = sequence; val.index = index; val._refCount = 1; return(val); } } _numInstancesAllocated++; return(new ValSeqElem(sequence, index)); }
public static ValMap Create() { //Console.WriteLine("Creating ValMap ID " + _num); if (_valuePool == null) { _valuePool = new ValuePool <ValMap>(); } else { ValMap valMap = _valuePool.GetInstance(); if (valMap != null) { valMap._refCount = 1; #if MINISCRIPT_DEBUG valMap._id = _num++; #endif return(valMap); } } #if MINISCRIPT_DEBUG _numInstancesAllocated++; #endif return(new ValMap(true)); }
internal AvailableItemsEnumerator(ValuePool <T> pool) { _enumerator = pool._availableItems.GetEnumerator(); }
public DebugView(ValuePool <T> pool) { _pool = pool; }
internal GraphicsRenderCommandQueue(GraphicsDevice device) : base(device, GraphicsContextKind.Render) { _contexts = new ValuePool <GraphicsRenderContext>(); _contextsMutex = new ValueMutex(); }
internal ItemsEnumerator(ValuePool <T> pool) { _enumerator = pool._items.GetEnumerator(); }
//TODO add create with ValString for fast add public static ValString Create(string val, bool usePool = true) { if (!usePool) { return(new ValString(val, false)); } switch (val) { case "s": return(sStr); case "self": return(selfStr); case "to": return(toStr); case "from": return(fromStr); case "__isa": return(magicIsA); case "seq": return(seqStr); case "super": return(superStr); case "len": return(lenStr); case "__events": return(eventsStr); case "__eventVals": return(eventValsStr); case "__isAtEnd": return(isAtEndStr); case "yield": return(yieldStr); case " ": return(spaceStr); case "x": return(xStr); case "y": return(yStr); case "z": return(zStr); case "w": return(wStr); case "name": return(nameStr); case "position": return(positionStr); case "rotation": return(rotationStr); case "velocity": return(velocityStr); case "angularVelocity": return(angularVelocityStr); case "forward": return(forwardStr); case "right": return(rightStr); case "time": return(timeStr); case "deltaTime": return(deltaTimeStr); case "frameCount": return(frameCountStr); } //Console.WriteLine("Alloc str \"" + val + "\" num " + _num); if (_valuePool == null) { _valuePool = new ValuePool <ValString>(); } else { ValString valStr = _valuePool.GetInstance(); if (valStr != null) { valStr._refCount = 1; valStr.value = val; #if MINISCRIPT_DEBUG valStr._id = _num++; #endif return(valStr); } } #if MINISCRIPT_DEBUG _numInstancesAllocated++; #endif return(new ValString(val, true)); }