示例#1
0
		private int GetTargetLabel(Node target)
		{
			int labelId = target.LabelId();
			if (labelId == -1)
			{
				labelId = cfw.AcquireLabel();
				target.LabelId(labelId);
			}
			return labelId;
		}
示例#2
0
		private int GetTargetLabel(Node target)
		{
			int label = target.LabelId();
			if (label != -1)
			{
				return label;
			}
			label = labelTableTop;
			if (labelTable == null || label == labelTable.Length)
			{
				if (labelTable == null)
				{
					labelTable = new int[MIN_LABEL_TABLE_SIZE];
				}
				else
				{
					int[] tmp = new int[labelTable.Length * 2];
					System.Array.Copy(labelTable, 0, tmp, 0, label);
					labelTable = tmp;
				}
			}
			labelTableTop = label + 1;
			labelTable[label] = -1;
			target.LabelId(label);
			return label;
		}