Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
REPR data serialize/deserialize for NativeRef.
  • Loading branch information
jnthn committed Feb 28, 2015
1 parent cef0fd2 commit 959164f
Showing 1 changed file with 22 additions and 0 deletions.
22 changes: 22 additions & 0 deletions src/vm/jvm/runtime/org/perl6/nqp/sixmodel/reprs/NativeRef.java
Expand Up @@ -6,6 +6,7 @@
import org.perl6.nqp.sixmodel.STable;
import org.perl6.nqp.sixmodel.StorageSpec;
import org.perl6.nqp.sixmodel.SerializationReader;
import org.perl6.nqp.sixmodel.SerializationWriter;
import org.perl6.nqp.sixmodel.SixModelObject;
import org.perl6.nqp.sixmodel.TypeObject;

Expand Down Expand Up @@ -99,4 +100,25 @@ public void deserialize_finish(ThreadContext tc, STable st,
SerializationReader reader, SixModelObject obj) {
throw ExceptionHandling.dieInternal(tc, "Cannot deserialize a native reference");
}

public void serialize_repr_data(ThreadContext tc, STable st, SerializationWriter writer)
{
NativeRefREPRData rd = (NativeRefREPRData)st.REPRData;
if (rd != null) {
writer.writeInt32(rd.primitive_type);
writer.writeInt32(rd.ref_kind);
}
else {
writer.writeInt32(0);
writer.writeInt32(0);
}
}

public void deserialize_repr_data(ThreadContext tc, STable st, SerializationReader reader)
{
NativeRefREPRData rd = new NativeRefREPRData();
rd.primitive_type = (short)reader.readInt32();
rd.ref_kind = (short)reader.readInt32();
st.REPRData = rd;
}
}

0 comments on commit 959164f

Please sign in to comment.