From 32d73db5d8b2dc9cf029f06999023efb1ae24e81 Mon Sep 17 00:00:00 2001 From: Ian Piumarta Date: Mon, 12 Jul 2021 19:01:59 +0900 Subject: [PATCH] reinstate tagged integers; use correct types on getFloat --- object.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/object.c b/object.c index d8755c4..8f28bdf 100644 --- a/object.c +++ b/object.c @@ -226,10 +226,6 @@ int_t getInteger(oop obj) return get(obj, Integer, _value); } -float_t getFloat(oop obj) { - return get(obj, Float, _value); -} - #if (USE_TAG) int isIntegerValue(int_t value) { @@ -241,12 +237,11 @@ int isIntegerValue(int_t value) oop makeInteger(int_t value) { #if (USE_TAG) - if (!isIntegerValue(value)) return (oop)(((intptr_t)value << 1) | 1); //TODO + if (isIntegerValue(value)) return (oop)(((intptr_t)value << 1) | 1); //TODO #endif oop newInt = malloc(sizeof(struct Integer)); newInt->type = Integer; - set(newInt, Integer, _value, value); - //newInt->Integer._value = value; + newInt->Integer._value = value; return newInt; } @@ -254,11 +249,15 @@ oop makeFloat(flt_t value) { oop newFloat= malloc(sizeof(struct Float)); newFloat->type= Float; - set(newFloat, Float, _value, value); - //newFloat->Float._value= value; + newFloat->Float._value= value; return newFloat; } +flt_t getFloat(oop obj) +{ + return get(obj, Float, _value); +} + oop makeString(char *value) { oop newString = malloc(sizeof(struct String));