Пример #1
0
void testSerialization(CFGBuilder& bld, char* buf, SExpr *e) {
  std::cout << "\n";
  TILDebugPrinter::print(e, std::cout);
  std::cout << "\n\n";

  int len = 0;

  InMemoryWriter writeStream(buf);
  BytecodeWriter writer(&writeStream);

  writer.traverseAll(e);
  writeStream.flush();
  len = writeStream.totalLength();
  std::cout << "Output " << len << " bytes.\n";
  writeStream.dump();
  std::cout << "\n";

  InMemoryReader readStream(buf, len, bld.arena());
  BytecodeReader reader(bld, &readStream);
  auto* e2 = reader.read();

  if (e2) {
    TILDebugPrinter::print(e2, std::cout);
    std::cout << "\n\n";
  }
}
Пример #2
0
void testSerialization(CFGBuilder& bld, SExpr *e) {
  std::cout << "\n";
  TILDebugPrinter::print(e, std::cout);
  std::cout << "\n\n";

  BytecodeStringWriter writeStream;
  BytecodeWriter writer(&writeStream);

  writer.traverseAll(e);
  writeStream.flush();
  std::string buffer = writeStream.str();
  int len = buffer.size();
  std::cout << "Output " << len << " bytes.\n";
  writeStream.dump();
  std::cout << "\n";

  InMemoryReader readStream(buffer.data(), len, bld.arena());
  BytecodeReader reader(bld, &readStream);
  auto* e2 = reader.read();

  if (e2) {
    TILDebugPrinter::print(e2, std::cout);
    std::cout << "\n\n";
  }
}