Skip to content

Commit

Permalink
[back] Support older version of glibc
Browse files Browse the repository at this point in the history
  • Loading branch information
chiragsakhuja committed Sep 3, 2019
1 parent f7c111b commit 253abf8
Show file tree
Hide file tree
Showing 5 changed files with 21 additions and 18 deletions.
10 changes: 5 additions & 5 deletions backend/assembler.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@

static constexpr uint32_t INST_NAME_CLOSENESS = 2;

std::stringstream lc3::core::Assembler::assemble(std::istream & buffer)
std::shared_ptr<std::stringstream> lc3::core::Assembler::assemble(std::istream & buffer)
{
using namespace asmbl;
using namespace lc3::utils;
Expand Down Expand Up @@ -62,11 +62,11 @@ std::stringstream lc3::core::Assembler::assemble(std::istream & buffer)
throw lc3::utils::exception("assembly failed");
}

std::stringstream ret(std::ios_base::in | std::ios_base::out | std::ios_base::binary);
ret << getMagicHeader();
ret << getVersionString();
auto ret = std::make_shared<std::stringstream>(std::ios_base::in | std::ios_base::out | std::ios_base::binary);
(*ret) << getMagicHeader();
(*ret) << getVersionString();
for(MemEntry const & entry : machine_code_blob.second) {
ret << entry;
(*ret) << entry;
}
return ret;
}
Expand Down
3 changes: 2 additions & 1 deletion backend/assembler.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
#ifndef ASSEMBLER_H
#define ASSEMBLER_H

#include <memory>
#include <sstream>
#include <vector>

Expand All @@ -26,7 +27,7 @@ namespace core
Assembler & operator=(Assembler const &) = delete;
~Assembler(void) = default;

std::stringstream assemble(std::istream & buffer);
std::shared_ptr<std::stringstream> assemble(std::istream & buffer);
void setFilename(std::string const & filename) { logger.setFilename(filename); }

private:
Expand Down
10 changes: 5 additions & 5 deletions backend/converter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
#include "mem.h"
#include "converter.h"

std::stringstream lc3::core::Converter::convertBin(std::istream & buffer)
std::shared_ptr<std::stringstream> lc3::core::Converter::convertBin(std::istream & buffer)
{
using namespace lc3::utils;

Expand Down Expand Up @@ -63,11 +63,11 @@ std::stringstream lc3::core::Converter::convertBin(std::istream & buffer)

logger.printf(PrintType::P_INFO, true, "conversion successful");

std::stringstream ret(std::ios_base::in | std::ios_base::out | std::ios_base::binary);
ret << getMagicHeader();
ret << getVersionString();
auto ret = std::make_shared<std::stringstream>(std::ios_base::in | std::ios_base::out | std::ios_base::binary);
(*ret) << getMagicHeader();
(*ret) << getVersionString();
for(MemEntry entry : obj_blob) {
ret << entry;
(*ret) << entry;
}

return ret;
Expand Down
4 changes: 3 additions & 1 deletion backend/converter.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
#ifndef CONVERTER_H
#define CONVERTER_H

#include <memory>

#include "logger.h"
#include "printer.h"

Expand All @@ -15,7 +17,7 @@ namespace core
{
public:
Converter(lc3::utils::IPrinter & printer, uint32_t print_level) : logger(printer, print_level) {}
std::stringstream convertBin(std::istream & buffer);
std::shared_ptr<std::stringstream> convertBin(std::istream & buffer);

private:
lc3::utils::Logger logger;
Expand Down
12 changes: 6 additions & 6 deletions backend/interface.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -82,8 +82,8 @@ void lc3::sim::loadOS(void)

std::stringstream src_buffer;
src_buffer << lc3::core::getOSSrc();
std::stringstream obj_stream = assembler.assemble(src_buffer);
simulator.loadObj(obj_stream);
std::shared_ptr<std::stringstream> obj_stream = assembler.assemble(src_buffer);
simulator.loadObj(*obj_stream);
getMachineState().pc = RESET_PC;
}

Expand Down Expand Up @@ -512,7 +512,7 @@ lc3::optional<std::string> lc3::as::assemble(std::string const & asm_filename)
printer.print("attemping to assemble " + asm_filename + " into " + obj_filename);
printer.newline();

std::stringstream out_stream;
std::shared_ptr<std::stringstream> out_stream;

#ifdef _ENABLE_DEBUG
auto start = std::chrono::high_resolution_clock::now();
Expand Down Expand Up @@ -556,7 +556,7 @@ lc3::optional<std::string> lc3::as::assemble(std::string const & asm_filename)
}
}

out_file << out_stream.rdbuf();
out_file << out_stream->rdbuf();
out_file.close();

return obj_filename;
Expand All @@ -579,7 +579,7 @@ lc3::optional<std::string> lc3::conv::convertBin(std::string const & bin_filenam
printer.print("attemping to convert " + bin_filename + " into " + obj_filename);
printer.newline();

std::stringstream out_stream;
std::shared_ptr<std::stringstream> out_stream;

#ifdef _ENABLE_DEBUG
auto start = std::chrono::high_resolution_clock::now();
Expand Down Expand Up @@ -623,7 +623,7 @@ lc3::optional<std::string> lc3::conv::convertBin(std::string const & bin_filenam
}
}

out_file << out_stream.rdbuf();
out_file << out_stream->rdbuf();
out_file.close();

return obj_filename;
Expand Down

0 comments on commit 253abf8

Please sign in to comment.