Now using shared_ptr

This commit is contained in:
AnonymusRaccoon
2020-01-24 10:39:45 +01:00
parent 01ad5b6f30
commit 6499646766
4 changed files with 11 additions and 11 deletions

View File

@@ -2,23 +2,22 @@
// Created by anonymus-raccoon on 1/23/20.
//
#include <ios>
#include <iostream>
#include "MemoryBus.hpp"
namespace ComSquare
{
IMemory *MemoryBus::getAccessor(uint32_t addr)
std::shared_ptr<IMemory> MemoryBus::getAccessor(uint32_t addr)
{
return std::find_if(this->_memoryAccessors.begin(), this->_memoryAccessors.end(), [addr](IMemory *accessor)
return *std::find_if(this->_memoryAccessors.begin(), this->_memoryAccessors.end(), [addr](std::shared_ptr<IMemory> &accessor)
{
return accessor->hasMemorydAt(addr);
}).base();
return accessor->hasMemoryAt(addr);
});
}
uint8_t MemoryBus::read(uint32_t addr)
{
IMemory *handler = this->getAccessor(addr);
std::shared_ptr<IMemory> handler = this->getAccessor(addr);
if (!handler) {
std::cout << "Unknown memory accessor for address " << std::hex << addr << ". Using open bus." << std::endl;
@@ -31,7 +30,7 @@ namespace ComSquare
void MemoryBus::write(uint32_t addr, uint8_t data)
{
IMemory *handler = this->getAccessor(addr);
std::shared_ptr<IMemory> handler = this->getAccessor(addr);
if (!handler) {
std::cout << "Unknown memory accessor for address " << std::hex << addr << ". Warning, it was a write." << std::endl;