diff --git a/libgambatte/src/interruptrequester.h b/libgambatte/src/interruptrequester.h index 5d0c49f860..8edeca1598 100644 --- a/libgambatte/src/interruptrequester.h +++ b/libgambatte/src/interruptrequester.h @@ -85,9 +85,9 @@ public: templatevoid SyncState(NewState *ns); }; -inline void flagHdmaReq(InterruptRequester *const intreq) { intreq->setEventTime(0); } -inline void flagGdmaReq(InterruptRequester *const intreq) { intreq->setEventTime(1); } -inline void ackDmaReq(InterruptRequester *const intreq) { intreq->setEventTime(disabled_time); } +inline void flagHdmaReq(InterruptRequester &intreq) { intreq.setEventTime(0); } +inline void flagGdmaReq(InterruptRequester &intreq) { intreq.setEventTime(1); } +inline void ackDmaReq(InterruptRequester &intreq) { intreq.setEventTime(disabled_time); } inline bool hdmaReqFlagged(const InterruptRequester &intreq) { return intreq.eventTime(DMA) == 0; } inline bool gdmaReqFlagged(const InterruptRequester &intreq) { return intreq.eventTime(DMA) == 1; } diff --git a/libgambatte/src/memory.cpp b/libgambatte/src/memory.cpp index ad8d1d69f0..8af72dbf06 100644 --- a/libgambatte/src/memory.cpp +++ b/libgambatte/src/memory.cpp @@ -33,7 +33,7 @@ Memory::Memory(const Interrupter &interrupter_in, unsigned short &sp, unsigned s getInput(0), divLastUpdate(0), lastOamDmaUpdate(disabled_time), - display(ioamhram, 0, VideoInterruptRequester(&intreq)), + display(ioamhram, 0, VideoInterruptRequester(intreq)), interrupter(interrupter_in), dmaSource(0), dmaDestination(0), @@ -203,7 +203,7 @@ unsigned long Memory::event(unsigned long cycleCounter) { unsigned dmaLength = ((ioamhram[0x155] & 0x7F) + 0x1) * 0x10; unsigned length = hdmaReqFlagged(intreq) ? 0x10 : dmaLength; - ackDmaReq(&intreq); + ackDmaReq(intreq); if ((static_cast(dmaDest) + length) & 0x10000) { length = 0x10000 - dmaDest; @@ -843,7 +843,7 @@ void Memory::nontrivial_ff_write(const unsigned P, unsigned data, const unsigned intreq.setEventTime(cycleCounter + (456 * 4 << isDoubleSpeed())); if (hdmaEnabled) - flagHdmaReq(&intreq); + flagHdmaReq(intreq); } } else display.lcdcChange(data, cycleCounter); @@ -944,9 +944,9 @@ void Memory::nontrivial_ff_write(const unsigned P, unsigned data, const unsigned if (ioamhram[0x140] & 0x80) { display.enableHdma(cycleCounter); } else - flagHdmaReq(&intreq); + flagHdmaReq(intreq); } else - flagGdmaReq(&intreq); + flagGdmaReq(intreq); } } diff --git a/libgambatte/src/memory.h b/libgambatte/src/memory.h index 2b238c3083..3a3efb71c6 100644 --- a/libgambatte/src/memory.h +++ b/libgambatte/src/memory.h @@ -30,7 +30,6 @@ static unsigned char const agbOverride[0xD] = { 0xFF, 0x00, 0xCD, 0x03, 0x35, 0x #include "gambatte.h" namespace gambatte { -class InputGetter; class FilterInfo; class Memory { diff --git a/libgambatte/src/video.h b/libgambatte/src/video.h index ec1302bfb2..da684a67de 100644 --- a/libgambatte/src/video.h +++ b/libgambatte/src/video.h @@ -31,13 +31,13 @@ namespace gambatte { class VideoInterruptRequester { - InterruptRequester * intreq; + InterruptRequester &intreq; public: - explicit VideoInterruptRequester(InterruptRequester * intreq) : intreq(intreq) {} + explicit VideoInterruptRequester(InterruptRequester &intreq) : intreq(intreq) {} void flagHdmaReq() const { gambatte::flagHdmaReq(intreq); } - void flagIrq(const unsigned bit) const { intreq->flagIrq(bit); } - void setNextEventTime(const unsigned long time) const { intreq->setEventTime