This commit is contained in:
kudzu_cp 2009-09-13 15:16:08 +00:00
parent b20b92b4cd
commit 2b34fe04cb

View file

@ -477,30 +477,39 @@ namespace Cosmos.IL2CPU {
private long mItemsHandled = 0;
protected void ScanQueue() {
while (mQueue.Count > 0) {
if ((mQueue.Count + mItemsHandled) != mItems.Count) {
Console.Write("");
}
var xItem = mQueue.Dequeue();
// Check for MethodBase first, they are more numerous
// and will reduce compares
if (xItem is MethodBase) {
ScanMethod((MethodBase)xItem, false);
} else if (xItem is Type) {
ScanType((Type)xItem);
} else {
throw new Exception("Unknown item found in queue.");
}
mItemsHandled++;
if ((mItemsHandled % 5000) == 0) {
Console.WriteLine("ItemsHandled: {0}", mItemsHandled);
}
if (mItemsHandled == 10000) {
throw new Exception("Debug Abort");
while (mQueue.Count > 0) {
if ((mQueue.Count + mItemsHandled) != mItems.Count) {
Console.Write("");
}
var xItem = mQueue.Dequeue();
// Check for MethodBase first, they are more numerous
// and will reduce compares
if (xItem is MethodBase) {
ScanMethod((MethodBase)xItem, false);
} else if (xItem is Type) {
ScanType((Type)xItem);
} else {
throw new Exception("Unknown item found in queue.");
}
mItemsHandled++;
if ((mItemsHandled % 5000) == 0) {
Console.WriteLine("ItemsHandled: {0}", mItemsHandled);
}
if (mItemsHandled == 10000) {
throw new Exception("Debug Abort");
}
}
// We process all items until no more are added.
// Then we check virtuals again. If it adds more items
// Then we need to repeat the whole process.
CheckVirtuals();
}
Console.WriteLine("ItemsHandled: {0}", mItemsHandled);
}
protected void CheckVirtuals() {
}
protected void LogMapPoint(object aSrc, string aSrcType, object aItem) {
// Keys cant be null. If null, we just say ILScanner is the source
if (aSrc == null) {