Browse Source

reinstate tagged integers; use correct types on getFloat

master
Ian Piumarta 3 years ago
parent
commit
32d73db5d8
1 changed files with 8 additions and 9 deletions
  1. +8
    -9
      object.c

+ 8
- 9
object.c View File

@ -226,10 +226,6 @@ int_t getInteger(oop obj)
return get(obj, Integer, _value); return get(obj, Integer, _value);
} }
float_t getFloat(oop obj) {
return get(obj, Float, _value);
}
#if (USE_TAG) #if (USE_TAG)
int isIntegerValue(int_t value) int isIntegerValue(int_t value)
{ {
@ -241,12 +237,11 @@ int isIntegerValue(int_t value)
oop makeInteger(int_t value) oop makeInteger(int_t value)
{ {
#if (USE_TAG) #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 #endif
oop newInt = malloc(sizeof(struct Integer)); oop newInt = malloc(sizeof(struct Integer));
newInt->type = Integer; newInt->type = Integer;
set(newInt, Integer, _value, value);
//newInt->Integer._value = value;
newInt->Integer._value = value;
return newInt; return newInt;
} }
@ -254,11 +249,15 @@ oop makeFloat(flt_t value)
{ {
oop newFloat= malloc(sizeof(struct Float)); oop newFloat= malloc(sizeof(struct Float));
newFloat->type= Float; newFloat->type= Float;
set(newFloat, Float, _value, value);
//newFloat->Float._value= value;
newFloat->Float._value= value;
return newFloat; return newFloat;
} }
flt_t getFloat(oop obj)
{
return get(obj, Float, _value);
}
oop makeString(char *value) oop makeString(char *value)
{ {
oop newString = malloc(sizeof(struct String)); oop newString = malloc(sizeof(struct String));

Loading…
Cancel
Save