From f0c70f855a892ca7dc21cee4b4037dad983adb8f Mon Sep 17 00:00:00 2001 From: Lywx Date: Wed, 20 Mar 2024 21:17:11 -0600 Subject: Auto pad and overlap detection (#47) * Fully implemented pad and overlap detection * Cleaned code, fixed pad generation and added alignment * Added debug size on pads --- src/factories/BlobFactory.cpp | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) (limited to 'src/factories/BlobFactory.cpp') diff --git a/src/factories/BlobFactory.cpp b/src/factories/BlobFactory.cpp index 0539641..db902c1 100644 --- a/src/factories/BlobFactory.cpp +++ b/src/factories/BlobFactory.cpp @@ -3,7 +3,7 @@ #include "utils/Decompressor.h" #include -void BlobCodeExporter::Export(std::ostream &write, std::shared_ptr raw, std::string& entryName, YAML::Node &node, std::string* replacement ) { +ExportResult BlobCodeExporter::Export(std::ostream &write, std::shared_ptr raw, std::string& entryName, YAML::Node &node, std::string* replacement ) { auto symbol = GetSafeNode(node, "symbol", entryName); auto offset = GetSafeNode(node, "offset"); auto data = std::static_pointer_cast(raw)->mBuffer; @@ -31,19 +31,13 @@ void BlobCodeExporter::Export(std::ostream &write, std::shared_ptr write << "\n};\n"; if (Companion::Instance->IsDebug()) { - const auto sz = data.size(); - - write << "// size: 0x" << std::hex << std::uppercase << sz << "\n"; - if (IS_SEGMENTED(offset)) { - offset = SEGMENT_OFFSET(offset); - } - write << "// 0x" << std::hex << std::uppercase << (offset + sz) << "\n"; + write << "// size: 0x" << std::hex << std::uppercase << data.size() << "\n"; } - write << "\n"; + return (IS_SEGMENTED(offset) ? SEGMENT_OFFSET(offset) : offset) + data.size(); } -void BlobBinaryExporter::Export(std::ostream &write, std::shared_ptr raw, std::string& entryName, YAML::Node &node, std::string* replacement ) { +ExportResult BlobBinaryExporter::Export(std::ostream &write, std::shared_ptr raw, std::string& entryName, YAML::Node &node, std::string* replacement ) { auto writer = LUS::BinaryWriter(); auto data = std::static_pointer_cast(raw)->mBuffer; @@ -51,6 +45,7 @@ void BlobBinaryExporter::Export(std::ostream &write, std::shared_ptr> BlobFactory::parse(std::vector& buffer, YAML::Node& node) { -- cgit v1.2.3