Changeset 15027


Ignore:
Timestamp:
06/01/17 06:45:36 (6 years ago)
Author:
Mark Evenson
Message:

Better type checks

(Olof-Joachim Frahm)

Location:
trunk/abcl/src/org/armedbear/lisp
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/abcl/src/org/armedbear/lisp/Bignum.java

    r14757 r15027  
    8686  @Override
    8787  public Object javaInstance(Class c) {
    88     String cn = c.getName();
    89     if (cn.equals("java.lang.Byte") || cn.equals("byte"))
     88    if (c == Byte.class || c == byte.class)
    9089      return Byte.valueOf((byte)value.intValue());
    91     if (cn.equals("java.lang.Short") || cn.equals("short"))
     90    if (c == Short.class || c == short.class)
    9291      return Short.valueOf((short)value.intValue());
    93     if (cn.equals("java.lang.Integer") || cn.equals("int"))
     92    if (c == Integer.class || c == int.class)
    9493      return Integer.valueOf(value.intValue());
    95     if (cn.equals("java.lang.Long") || cn.equals("long"))
     94    if (c == Long.class || c == long.class)
    9695      return Long.valueOf((long)value.longValue());
    9796    return javaInstance();
  • trunk/abcl/src/org/armedbear/lisp/DoubleFloat.java

    r14757 r15027  
    237237    public Object javaInstance(Class c)
    238238    {
    239         String cn = c.getName();
    240         if (cn.equals("java.lang.Float") || cn.equals("float"))
     239        if (c == Float.class || c == float.class)
    241240            return Float.valueOf((float)value);
    242241        return javaInstance();
  • trunk/abcl/src/org/armedbear/lisp/Fixnum.java

    r14757 r15027  
    7777  public Object javaInstance(Class c)
    7878  {
    79     String cn = c.getName();
    80     if (cn.equals("java.lang.Byte") || cn.equals("byte"))
     79    if (c == Byte.class || c == byte.class)
    8180      return Byte.valueOf((byte)value);
    82     if (cn.equals("java.lang.Short") || cn.equals("short"))
     81    if (c == Short.class || c == short.class)
    8382      return Short.valueOf((short)value);
    84     if (cn.equals("java.lang.Long") || cn.equals("long"))
     83    if (c == Long.class || c == long.class)
    8584      return Long.valueOf((long)value);
    8685    return javaInstance();
  • trunk/abcl/src/org/armedbear/lisp/LispObject.java

    r14903 r15027  
    133133    }
    134134
    135     String cn = c.getName();
    136     if (cn != null) {
    137       if (cn.equals("java.lang.Boolean") || cn.equals("boolean")) {
    138         return Boolean.TRUE;
    139       }
    140     }
     135    if (c == Boolean.class || c == boolean.class)
     136      return Boolean.TRUE;
    141137
    142138    return error(new LispError("The value " + princToString() +
  • trunk/abcl/src/org/armedbear/lisp/Nil.java

    r14903 r15027  
    5656    public Object javaInstance(Class c)
    5757    {
    58       String cn = c.getName();
    59       if (cn != null) {
    60         if (cn.equals("java.lang.Boolean") || cn.equals("boolean")) {
    61           return Boolean.FALSE;
    62         }
    63       }
    64       return javaInstance();
     58        if (c == Boolean.class || c == boolean.class)
     59            return Boolean.FALSE;
     60        return javaInstance();
    6561    }
    6662
  • trunk/abcl/src/org/armedbear/lisp/SingleFloat.java

    r14757 r15027  
    242242    public Object javaInstance(Class c)
    243243    {
    244         String cn = c.getName();
    245         if (cn.equals("java.lang.Float") || cn.equals("float"))
     244        if (c == Float.class || c == float.class)
    246245            return Float.valueOf(value);
    247246        return javaInstance();
Note: See TracChangeset for help on using the changeset viewer.