Example #1
0
        public MemoryLayout Merge(MemoryLayout y)
        {
            MemoryLayout result = new MemoryLayout(
                CodePages.Keys.Count + y.CodePages.Keys.Count,
                DataPages.Keys.Count + y.DataPages.Keys.Count);


            for (int i = 0; i < CodePages.Keys.Count; i++)
            {
                uint vAddr = CodePages.Keys[i];
                uint pAddr = CodePages[vAddr];
                result.AddCodePage(pAddr, vAddr);
            }
            for (int i = 0; i < DataPages.Keys.Count; i++)
            {
                uint vAddr = DataPages.Keys[i];
                uint pAddr = DataPages[vAddr];
                result.AddDataPage(pAddr, vAddr);
            }

            for (int i = 0; i < y.CodePages.Keys.Count; i++)
            {
                uint vAddr = y.CodePages.Keys[i];
                uint pAddr = y.CodePages[vAddr];
                result.AddCodePage(pAddr, vAddr);
            }
            for (int i = 0; i < y.DataPages.Keys.Count; i++)
            {
                uint vAddr = y.DataPages.Keys[i];
                uint pAddr = y.DataPages[vAddr];
                result.AddDataPage(pAddr, vAddr);
            }

            return(result);
        }
Example #2
0
        public MemoryLayout Merge(MemoryLayout y)
        {
            MemoryLayout result = new MemoryLayout();

            for (int i = 0; i < CodePages.Keys.Count; i++)
            {
                uint vAddr = CodePages.Keys[i];
                uint pAddr = CodePages[vAddr];
                result.AddCodePage(pAddr, vAddr);
            }
            for (int i = 0; i < DataPages.Keys.Count; i++)
            {
                uint vAddr = DataPages.Keys[i];
                uint pAddr = DataPages[vAddr];
                result.AddDataPage(pAddr, vAddr);
            }

            for (int i = 0; i < y.CodePages.Keys.Count; i++)
            {
                uint vAddr = y.CodePages.Keys[i];
                uint pAddr = y.CodePages[vAddr];
                result.AddCodePage(pAddr, vAddr);
            }
            for (int i = 0; i < y.DataPages.Keys.Count; i++)
            {
                uint vAddr = y.DataPages.Keys[i];
                uint pAddr = y.DataPages[vAddr];
                result.AddDataPage(pAddr, vAddr);
            }

            return result;
        }