Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Implement [num|set|<?>]dimensions ops on JVM.
  • Loading branch information
jnthn committed Jul 10, 2015
1 parent c1b189a commit 79a13b0
Showing 1 changed file with 22 additions and 0 deletions.
22 changes: 22 additions & 0 deletions src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java
Expand Up @@ -2977,6 +2977,28 @@ public static SixModelObject setelems(SixModelObject agg, long elems, ThreadCont
agg.set_elems(tc, elems);
return agg;
}
public static long numdimensions(SixModelObject agg, ThreadContext tc) {
return agg.dimensions(tc).length;
}
public static SixModelObject dimensions(SixModelObject agg, ThreadContext tc) {
long[] dims = agg.dimensions(tc);
SixModelObject BOOTIntArray = tc.gc.BOOTIntArray;
SixModelObject dimRes = BOOTIntArray.st.REPR.allocate(tc, BOOTIntArray.st);
for (int i = 0; i < dims.length; i++) {
tc.native_i = dims[i];
dimRes.bind_pos_native(tc, i);
}
return dimRes;
}
public static SixModelObject setdimensions(SixModelObject agg, SixModelObject dims, ThreadContext tc) {
long[] jdims = new long[(int)dims.elems(tc)];
for (int i = 0; i < jdims.length; i++) {
dims.at_pos_native(tc, i);
jdims[i] = tc.native_i;
}
agg.set_dimensions(tc, jdims);
return agg;
}
public static long existspos(SixModelObject agg, long key, ThreadContext tc) {
return agg.exists_pos(tc, key);
}
Expand Down

0 comments on commit 79a13b0

Please sign in to comment.