mirror of
https://github.com/zoriya/ComSquare.git
synced 2025-12-19 21:55:11 +00:00
Now using shared_ptr
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user