From 44ea8baea80dac004d69c37c5bcbe470172c535b Mon Sep 17 00:00:00 2001 From: Selim Mustafaev Date: Sat, 30 Sep 2023 17:56:48 +0300 Subject: [PATCH] Fixed memory leak in spm package --- NesKit/NesSystem.mm | 4 +++- src/Controller.cpp | 6 +++++- src/Controller.h | 2 +- src/Ppu.cpp | 7 ++++--- src/System.cpp | 1 + 5 files changed, 14 insertions(+), 6 deletions(-) diff --git a/NesKit/NesSystem.mm b/NesKit/NesSystem.mm index 30cebef..a248a86 100644 --- a/NesKit/NesSystem.mm +++ b/NesKit/NesSystem.mm @@ -31,6 +31,8 @@ _system->setNewFrameCallback([frameBufferSize, self](auto frameBuffer) { _runEmulation = NO; + CGImageRelease(_frame); + CGDataProviderRef dataProvider = CGDataProviderCreateWithData(NULL, (void*)frameBuffer, frameBufferSize, NULL); CGColorSpaceRef colorspace = CGColorSpaceCreateDeviceRGB(); CGImageRef image = CGImageCreate(nes::Ppu::SCREEN_WIDTH, @@ -42,7 +44,7 @@ kCGImageAlphaPremultipliedLast, dataProvider, NULL, - true, + false, kCGRenderingIntentDefault); CGDataProviderRelease(dataProvider); CGColorSpaceRelease(colorspace); diff --git a/src/Controller.cpp b/src/Controller.cpp index 0423483..d24f6d7 100644 --- a/src/Controller.cpp +++ b/src/Controller.cpp @@ -15,4 +15,8 @@ namespace nes { _data <<= 1; return result; } -} \ No newline at end of file + + void Controller::poll() { + + } +} diff --git a/src/Controller.h b/src/Controller.h index 86acc1e..038214b 100644 --- a/src/Controller.h +++ b/src/Controller.h @@ -25,7 +25,7 @@ namespace nes { public: Controller(); uint8_t read(); - virtual void poll() = 0; + virtual void poll(); protected: uint8_t _data; diff --git a/src/Ppu.cpp b/src/Ppu.cpp index 1e0a8d2..37fbcab 100644 --- a/src/Ppu.cpp +++ b/src/Ppu.cpp @@ -51,9 +51,10 @@ namespace nes { // All visible scanlines if (_scanline >= -1 && _scanline < 240) { - if(_scanline == 0 && _column == 0) { - _column = 1; - } + // ??? + //if(_scanline == 0 && _column == 0) { + // _column = 1; + //} if (_scanline == -1 && _column == 1) { _status.verticalBlank = 0; diff --git a/src/System.cpp b/src/System.cpp index c54bb96..af691c7 100644 --- a/src/System.cpp +++ b/src/System.cpp @@ -23,6 +23,7 @@ namespace nes { _cpu = std::make_unique(this); _ppu = std::make_unique(); _dma = std::make_unique(this, _ppu.get()); + _controller1 = std::make_shared(); } void System::insertCartridge(const fs::path &path, std::optional address) {