internal void ReleaseObjectForLazyEmit(ObjectFieldLazyEmitInfo info) { objectFieldLazyEmitInfoCache.SetItem(info); }
internal void SetObjectForLazyEmit(VariableUse object_holder) { Debug.Assert(object_holder is ItemUse); if (objectFieldLazyEmitInfoCache == null) objectFieldLazyEmitInfoCache = new ObjectFieldLazyEmitInfoCache(); objectFieldLazyEmitInfo = objectFieldLazyEmitInfoCache.GetItem(object_holder.IsMemberOf, this.IsArrayItem, this.IsLastMember); }
internal ObjectFieldLazyEmitInfo GetObjectForLazyEmit() { Debug.Assert(objectFieldLazyEmitInfo != null); ObjectFieldLazyEmitInfo info = objectFieldLazyEmitInfo; objectFieldLazyEmitInfo = null; this.IsArrayItem = info.Old_IsArrayItem; this.IsLastMember = info.Old_IsLastMember; return info; }
/// <summary> /// Sets the <see cref="ObjectFieldLazyEmitInfo"/> object to the collection. /// </summary> /// <param name="info"></param> /// <remarks> /// This method should only be called from <see cref="ChainBuilder.ReleaseObjectForLazyEmit"/> method. /// </remarks> public void SetItem(ObjectFieldLazyEmitInfo info) { Debug.Assert(stack != null); info.Reset(); stack.Push(info); }