// Path: src/main/java/ocelot/JVMValue.java
// public class JVMValue {
// 
//     public final JVMType type;
//     public final long value;
// 
//     public JVMValue(JVMType t, long bits) {
//         this.type = t;
//         this.value = bits;
//     }
// 
//     JVMValue copy() {
//         return new JVMValue(type, value);
//     }
// 
//     public static JVMValue entry(double d) {
//         return new JVMValue(JVMType.D, Double.doubleToLongBits(d));
//     }
// 
//     public static JVMValue entry(int i) {
//         return new JVMValue(JVMType.I, i);
//     }
// 
//     public static JVMValue entryRef(long id) {
//         return new JVMValue(JVMType.A, id);
//     }
// 
// }


import ocelot.JVMValue;
package ocelot.rt;


/**
 * The class that implements a heap-allocated JVM object
 *
 * @author ben
 */
public final class OtObj {
    private final OtMeta mark = new OtMeta();
    private final OtKlass klass;
    private final long id;
// Path: src/main/java/ocelot/JVMValue.java
// public class JVMValue {
// 
//     public final JVMType type;
//     public final long value;
// 
//     public JVMValue(JVMType t, long bits) {
//         this.type = t;
//         this.value = bits;
//     }
// 
//     JVMValue copy() {
//         return new JVMValue(type, value);
//     }
// 
//     public static JVMValue entry(double d) {
//         return new JVMValue(JVMType.D, Double.doubleToLongBits(d));
//     }
// 
//     public static JVMValue entry(int i) {
//         return new JVMValue(JVMType.I, i);
//     }
// 
//     public static JVMValue entryRef(long id) {
//         return new JVMValue(JVMType.A, id);
//     }
// 
// }


// Path: src/main/java/ocelot/rt/OtObj.java
import ocelot.JVMValue;

package ocelot.rt;


/**
 * The class that implements a heap-allocated JVM object
 *
 * @author ben
 */
public final class OtObj {
    private final OtMeta mark = new OtMeta();
    private final OtKlass klass;
    private final long id;
    private final JVMValue[] fields;