From 3a869f20de79db238addebbaa5db63d5a30c9666 Mon Sep 17 00:00:00 2001 From: Sjoerd van der Berg Date: Mon, 1 Sep 2003 14:28:37 +0000 Subject: [PATCH] Check if cycles need to be lowered when adding new irqs/events Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@1214 --- src/hardware/pic.cpp | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/hardware/pic.cpp b/src/hardware/pic.cpp index d0d666c4..18821383 100644 --- a/src/hardware/pic.cpp +++ b/src/hardware/pic.cpp @@ -244,29 +244,30 @@ static void AddEntry(PICEntry * entry) { if (!find_entry) { entry->next=0; pic.next_entry=entry; - return; - } - if (find_entry->index>entry->index) { + } else if (find_entry->index>entry->index) { pic.next_entry=entry; entry->next=find_entry; - return; - } - while (find_entry) { + } else while (find_entry) { if (find_entry->next) { /* See if the next index comes later than this one */ - if (find_entry->next->index>entry->index) { + if (find_entry->next->index > entry->index) { entry->next=find_entry->next; find_entry->next=entry; - return; + break; } else { find_entry=find_entry->next; } } else { entry->next=find_entry->next; find_entry->next=entry; - return; + break; } } + Bits cycles=PIC_MakeCycles(pic.next_entry->index-PIC_Index()); + if (cycles