Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Implement dimensions/set_dimensions in VMArray.
  • Loading branch information
jnthn committed Jul 10, 2015
1 parent 9a94d3e commit c1b189a
Show file tree
Hide file tree
Showing 11 changed files with 29 additions and 10 deletions.
Expand Up @@ -10,7 +10,7 @@
* This is a fairly direct port of the QRPA logic implemented by Patrick Michaud in
* the NQP repository. Thus the C-ish nature of the code. :-)
*/
public class VMArrayInstance extends SixModelObject {
public class VMArrayInstance extends VMArrayInstanceBase {
public int elems;
public int start;
public SixModelObject[] slots;
Expand Down
@@ -0,0 +1,19 @@
package org.perl6.nqp.sixmodel.reprs;

import java.lang.System;

import org.perl6.nqp.runtime.ExceptionHandling;
import org.perl6.nqp.runtime.ThreadContext;
import org.perl6.nqp.sixmodel.SixModelObject;

public class VMArrayInstanceBase extends SixModelObject {
public long[] dimensions(ThreadContext tc) {
return new long[] { this.elems(tc) };
}

public void set_dimensions(ThreadContext tc, long[] dims) {
if (dims.length != 1)
throw ExceptionHandling.dieInternal(tc, "A dynamic array can only have a single dimension");
this.set_elems(tc, dims[0]);
}
}
Expand Up @@ -6,7 +6,7 @@
import org.perl6.nqp.runtime.ThreadContext;
import org.perl6.nqp.sixmodel.SixModelObject;

public class VMArrayInstance_i extends SixModelObject {
public class VMArrayInstance_i extends VMArrayInstanceBase {
public int elems;
public int start;
public long[] slots;
Expand Down
Expand Up @@ -6,7 +6,7 @@
import org.perl6.nqp.runtime.ThreadContext;
import org.perl6.nqp.sixmodel.SixModelObject;

public class VMArrayInstance_i16 extends SixModelObject {
public class VMArrayInstance_i16 extends VMArrayInstanceBase {
public int elems;
public int start;
public short[] slots;
Expand Down
Expand Up @@ -6,7 +6,7 @@
import org.perl6.nqp.runtime.ThreadContext;
import org.perl6.nqp.sixmodel.SixModelObject;

public class VMArrayInstance_i32 extends SixModelObject {
public class VMArrayInstance_i32 extends VMArrayInstanceBase {
public int elems;
public int start;
public int[] slots;
Expand Down
Expand Up @@ -6,7 +6,7 @@
import org.perl6.nqp.runtime.ThreadContext;
import org.perl6.nqp.sixmodel.SixModelObject;

public class VMArrayInstance_i8 extends SixModelObject {
public class VMArrayInstance_i8 extends VMArrayInstanceBase {
public int elems;
public int start;
public byte[] slots;
Expand Down
Expand Up @@ -6,7 +6,7 @@
import org.perl6.nqp.runtime.ThreadContext;
import org.perl6.nqp.sixmodel.SixModelObject;

public class VMArrayInstance_n extends SixModelObject {
public class VMArrayInstance_n extends VMArrayInstanceBase {
public int elems;
public int start;
public double[] slots;
Expand Down
Expand Up @@ -6,7 +6,7 @@
import org.perl6.nqp.runtime.ThreadContext;
import org.perl6.nqp.sixmodel.SixModelObject;

public class VMArrayInstance_s extends SixModelObject {
public class VMArrayInstance_s extends VMArrayInstanceBase {
public int elems;
public int start;
public String[] slots;
Expand Down
Expand Up @@ -6,7 +6,7 @@
import org.perl6.nqp.runtime.ThreadContext;
import org.perl6.nqp.sixmodel.SixModelObject;

public class VMArrayInstance_u16 extends SixModelObject {
public class VMArrayInstance_u16 extends VMArrayInstanceBase {
public int elems;
public int start;
public short[] slots;
Expand Down
Expand Up @@ -6,7 +6,7 @@
import org.perl6.nqp.runtime.ThreadContext;
import org.perl6.nqp.sixmodel.SixModelObject;

public class VMArrayInstance_u32 extends SixModelObject {
public class VMArrayInstance_u32 extends VMArrayInstanceBase {
public int elems;
public int start;
public int[] slots;
Expand Down
Expand Up @@ -6,7 +6,7 @@
import org.perl6.nqp.runtime.ThreadContext;
import org.perl6.nqp.sixmodel.SixModelObject;

public class VMArrayInstance_u8 extends SixModelObject {
public class VMArrayInstance_u8 extends VMArrayInstanceBase {
public int elems;
public int start;
public byte[] slots;
Expand Down

0 comments on commit c1b189a

Please sign in to comment.