Ver código fonte

reinstate tagged integers; use correct types on getFloat

master
Ian Piumarta 3 anos atrás
pai
commit
32d73db5d8
1 arquivos alterados com 8 adições e 9 exclusões
  1. +8
    -9
      object.c

+ 8
- 9
object.c Ver arquivo

@ -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));

Carregando…
Cancelar
Salvar