Просмотр исходного кода

reinstate tagged integers; use correct types on getFloat

master
Ian Piumarta 3 лет назад
Родитель
Сommit
32d73db5d8
1 измененных файлов: 8 добавлений и 9 удалений
  1. +8
    -9
      object.c

+ 8
- 9
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));

Загрузка…
Отмена
Сохранить