コード例 #1
0
        public static void ReleaseSetOfObjects(ref SetOfObjects setOfObjects)
        {
            if (setOfObjects != null)
            {
                setOfObjects.Clear();
                GetContainers().m_setOfObjects = setOfObjects;

                setOfObjects = null;
            }
        }
コード例 #2
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        private void Eliminate()
        {
            var blocksAlreadyVisited = new SetOfObjects();

            foreach (var block in this.cdfg.RootBlocks)
            {
                Contract.Assume(block != null);
                blocksAlreadyVisited.Clear();
                this.Eliminate(block, blocksAlreadyVisited);
            }
        }
コード例 #3
0
ファイル: MultipleAssignment.cs プロジェクト: xornand/cci
        private void AddTransferInstructions()
        {
            var definedSSAVariables  = new SetOfObjects();
            var blocksAlreadyVisited = new SetOfObjects();

            foreach (var block in this.cdfg.RootBlocks)
            {
                Contract.Assume(block != null);
                definedSSAVariables.Clear();
                blocksAlreadyVisited.Clear();
                this.AddTransferInstructions(block, definedSSAVariables, blocksAlreadyVisited);
            }
        }
コード例 #4
0
        public static SetOfObjects AcquireSetOfObjects(uint capacity)
        {
            SetOfObjects result = Acquire(ref GetContainers().m_setOfObjects);

            if (result != null)
            {
                result.Clear();
            }
            else
            {
                result = new SetOfObjects(capacity);
            }

            return(result);
        }