summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRich Hickey <richhickey@gmail.com>2011-04-29 14:42:34 -0400
committerRich Hickey <richhickey@gmail.com>2011-04-29 14:42:34 -0400
commit6fb09f402c5448070a2efc64ebd64285480b263f (patch)
tree7527f1c1a15e7778b8632dc4d40d9f94cc229865
parent4b856bd5cb55dcbe98dab807ae95f6665cced30c (diff)
floats box as Floats
-rw-r--r--src/jvm/clojure/lang/Compiler.java6
-rw-r--r--src/jvm/clojure/lang/Numbers.java2
-rw-r--r--src/jvm/clojure/lang/Reflector.java4
3 files changed, 7 insertions, 5 deletions
diff --git a/src/jvm/clojure/lang/Compiler.java b/src/jvm/clojure/lang/Compiler.java
index 89d5df4e..bbaa0a12 100644
--- a/src/jvm/clojure/lang/Compiler.java
+++ b/src/jvm/clojure/lang/Compiler.java
@@ -774,8 +774,10 @@ static public abstract class HostExpr implements Expr, MaybePrimitiveExpr{
}
else if(returnType == float.class)
{
- gen.visitInsn(F2D);
- gen.invokeStatic(DOUBLE_TYPE, doubleValueOfMethod);
+ gen.invokeStatic(FLOAT_TYPE, floatValueOfMethod);
+
+// gen.visitInsn(F2D);
+// gen.invokeStatic(DOUBLE_TYPE, doubleValueOfMethod);
}
else if(returnType == double.class)
gen.invokeStatic(DOUBLE_TYPE, doubleValueOfMethod);
diff --git a/src/jvm/clojure/lang/Numbers.java b/src/jvm/clojure/lang/Numbers.java
index 8210de7c..2e71b826 100644
--- a/src/jvm/clojure/lang/Numbers.java
+++ b/src/jvm/clojure/lang/Numbers.java
@@ -1488,7 +1488,7 @@ static public Number num(Object x){
}
static public Number num(float x){
- return Double.valueOf(x);
+ return Float.valueOf(x);
}
static public Number num(double x){
diff --git a/src/jvm/clojure/lang/Reflector.java b/src/jvm/clojure/lang/Reflector.java
index d13bf61a..74e58777 100644
--- a/src/jvm/clojure/lang/Reflector.java
+++ b/src/jvm/clojure/lang/Reflector.java
@@ -497,8 +497,8 @@ public static Object prepRet(Class c, Object x){
{
return ((Integer)x).longValue();
}
- else if(x instanceof Float)
- return Double.valueOf(((Float) x).doubleValue());
+// else if(x instanceof Float)
+// return Double.valueOf(((Float) x).doubleValue());
return x;
}
}