示例#1
0
		internal void ReleaseObjectForLazyEmit(ObjectFieldLazyEmitInfo info)
		{
			objectFieldLazyEmitInfoCache.SetItem(info);
		}
示例#2
0
		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);
		}
示例#3
0
		internal ObjectFieldLazyEmitInfo GetObjectForLazyEmit()
		{
			Debug.Assert(objectFieldLazyEmitInfo != null);
			ObjectFieldLazyEmitInfo info = objectFieldLazyEmitInfo;
			objectFieldLazyEmitInfo = null;
			this.IsArrayItem = info.Old_IsArrayItem;
			this.IsLastMember = info.Old_IsLastMember;
			return info;
		}
示例#4
0
			/// <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);
			}