InstructionSequence* UnMarshaller::get_iseq() { size_t count; long op; stream >> count; InstructionSequence* iseq = InstructionSequence::create(state, count); Tuple* ops = iseq->opcodes(); for(size_t i = 0; i < count; i++) { stream >> op; ops->put(state, i, Fixnum::from(op)); } iseq->post_marshal(state); return iseq; }
InstructionSequence* UnMarshaller::get_iseq() { size_t count; char data[OPCODE_LENGTH]; stream >> count; // Read off newline stream.get(); InstructionSequence* iseq = InstructionSequence::create(state, count); Tuple* ops = iseq->opcodes(); for(size_t i = 0; i < count; i++) { stream.getline(data, OPCODE_LENGTH); long op = strtol(data, NULL, 10); ops->put(state, i, Fixnum::from(op)); } iseq->post_marshal(state); return iseq; }