public abstract class ObjectIDOperations extends Object
Object IDs distribution We try to respect MRI scheme when it makes sense (Fixnum for the moment). Have a look at include/ruby/ruby.h below ruby_special_consts. Encoding for Fixnum (long): ... 0000 = false ... 0010 = true ... 0100 = nil ... xxx1 = Fixnum of value (id-1)/2 if -2^62 <= value < 2^62 ... xxx0 = BasicObject generated id (for id > 4) Encoding for Bignum: ... 0001 | 64-bit long = Fixnum if value < -2^62 or value >= 2^62 ... 0010 | 64-bit raw double bits = Float
Modifier and Type | Field and Description |
---|---|
static int |
FALSE |
static int |
FIRST_OBJECT_ID |
static int |
NIL |
static int |
TRUE |
Constructor and Description |
---|
ObjectIDOperations() |
Modifier and Type | Method and Description |
---|---|
static RubyBignum |
floatToID(RubyContext context,
double value) |
static boolean |
isFloatID(RubyBignum id) |
static boolean |
isLargeFixnumID(RubyBignum id) |
static boolean |
isSmallFixnum(long fixnum) |
static boolean |
isSmallFixnumID(long id) |
static RubyBignum |
largeFixnumToID(RubyContext context,
long fixnum) |
static long |
smallFixnumToID(long fixnum) |
static long |
smallFixnumToIDOverflow(long fixnum) |
static long |
toFixnum(long id) |
static long |
toFixnum(RubyBignum id) |
static double |
toFloat(RubyBignum id) |
public static final int FALSE
public static final int TRUE
public static final int NIL
public static final int FIRST_OBJECT_ID
public static boolean isSmallFixnum(long fixnum)
public static long smallFixnumToIDOverflow(long fixnum) throws ArithmeticException
ArithmeticException
public static long smallFixnumToID(long fixnum)
public static RubyBignum largeFixnumToID(RubyContext context, long fixnum)
public static RubyBignum floatToID(RubyContext context, double value)
public static boolean isSmallFixnumID(long id)
public static long toFixnum(long id)
public static boolean isLargeFixnumID(RubyBignum id)
public static long toFixnum(RubyBignum id)
public static boolean isFloatID(RubyBignum id)
public static double toFloat(RubyBignum id)
Copyright © 2001-2015 JRuby. All Rights Reserved.