fix crash with sa1 ram exposure

This commit is contained in:
CasualPokePlayer 2024-09-30 23:01:09 -07:00
parent f9d4737104
commit 5ad12db814
4 changed files with 8 additions and 2 deletions

Binary file not shown.

View File

@ -116,6 +116,7 @@ void SA1::trigger_irq() {
}
void SA1::init() {
iram.init();
}
void SA1::load() {

View File

@ -12,12 +12,14 @@ void StaticRAM::write(unsigned addr, uint8 n) { data_[addr] = n; }
uint8& StaticRAM::operator[](unsigned addr) { return data_[addr]; }
const uint8& StaticRAM::operator[](unsigned addr) const { return data_[addr]; }
StaticRAM::StaticRAM(unsigned n, const char* name) : size_(n) {
if(name) data_ = (uint8*)interface()->allocSharedMemory(name, size_);
StaticRAM::StaticRAM(unsigned n, const char* name) : size_(n), name_(name) {
if(name_) data_ = nullptr; // data_ alloc must be deferred (static ctor is not in a cothread!)
else data_ = new uint8[size_]();
}
StaticRAM::~StaticRAM() { abort(); }
void StaticRAM::init() { if(name_ && !data_) data_ = (uint8*)interface()->allocSharedMemory(name_, size_); }
//MappedRAM
void MappedRAM::reset() {

View File

@ -16,9 +16,12 @@ struct StaticRAM : Memory {
inline StaticRAM(unsigned size, const char* name = NULL);
inline ~StaticRAM();
inline void init();
private:
uint8 *data_;
unsigned size_;
const char* name_;
};
struct MappedRAM : Memory {