@@ -209,7 +209,7 @@ void * allocate(size_t sz, int lock) {
209209}
210210
211211void* iallocate(VM * vm, size_t isize, int outerlock) {
212−// return malloc(size);
212+// return malloc(isize);
213213 size_t size = aligned(isize);
214214
215215#ifdef HAS_PTHREAD
@@ -364,17 +364,11 @@ VAL MKMPTRc(VM* vm, void* ptr, size_t size) {
364364}
365365
366366VAL MKB8(VM* vm, uint8_t bits8) {
367− Bits8 * cl = iallocate(vm, sizeof(*cl), 1);
368− SETTY(cl, CT_BITS8);
369− cl->bits8 = bits8;
370− return (VAL)cl;
367+ return MKINT(bits8);
371368}
372369
373370VAL MKB16(VM* vm, uint16_t bits16) {
374− Bits16 * cl = iallocate(vm, sizeof(*cl), 1);
375− SETTY(cl, CT_BITS16);
376− cl->bits16 = bits16;
377− return (VAL)cl;
371+ return MKINT(bits16);
378372}
379373
380374VAL MKB32(VM* vm, uint32_t bits32) {
@@ -417,11 +411,10 @@ void dumpStack(VM* vm) {
417411void dumpVal(VAL v) {
418412 if (v==NULL) return;
419413 int i;
420− if (ISINT(v)) {
421− printf("%d ", (int)(GETINT(v)));
422− return;
423− }
424414 switch(GETTY(v)) {
415+ case CT_INT:
416+ printf("%" PRIdPTR " ", GETINT(v));
417+ break;
425418 case CT_CON:
426419 {
427420 Con * cl = (Con*)v;
@@ -517,15 +510,10 @@ VAL idris_castBitsStr(VM* vm, VAL i) {
517510 ClosureType ty = GETTY(i);
518511
519512 switch (ty) {
520− case CT_BITS8:
521− // max length 8 bit unsigned int str 3 chars (256)
522− cl = allocStr(vm, 4, 0);
523− cl->slen = sprintf(cl->str, "%" PRIu8, GETBITS8(i));
524− break;
525− case CT_BITS16:
513+ case CT_INT: // 8/16 bits
526514 // max length 16 bit unsigned int str 5 chars (65,535)
527515 cl = allocStr(vm, 6, 0);
528− cl->slen = sprintf(cl->str, "%" PRIu16, GETBITS16(i));
516+ cl->slen = sprintf(cl->str, "%" PRIu16, (uint16_t)GETBITS16(i));
529517 break;
530518 case CT_BITS32:
531519 // max length 32 bit unsigned int str 10 chars (4,294,967,295)
@@ -859,10 +847,12 @@ static void copyArray(VM* vm, VAL * dst, VAL * src, size_t len) {
859847static VAL doCopyTo(VM* vm, VAL x) {
860848 int ar;
861849 VAL cl;
862− if (x==NULL || ISINT(x)) {
850+ if (x==NULL) {
863851 return x;
864852 }
865853 switch(GETTY(x)) {
854+ case CT_INT:
855+ return x;
866856 case CT_CDATA:
867857 cl = MKCDATAc(vm, GETCDATA(x));
868858 break;
@@ -889,8 +879,6 @@ static VAL doCopyTo(VM* vm, VAL x) {
889879 case CT_FLOAT:
890880 case CT_PTR:
891881 case CT_MANAGEDPTR:
892− case CT_BITS8:
893− case CT_BITS16:
894882 case CT_BITS32:
895883 case CT_BITS64:
896884 case CT_RAWDATA:
@@ -901,6 +889,7 @@ static VAL doCopyTo(VM* vm, VAL x) {
901889 break;
902890 default:
903891 assert(0); // We're in trouble if this happens...
892+ cl = NULL;
904893 }
905894 return cl;
906895}
@@ -1091,7 +1080,6 @@ Msg* idris_recvMessageFrom(VM* vm, int channel_id, VM* sender) {
10911080 fprintf(stderr, "No messages waiting");
10921081 exit(-1);
10931082 }
1094−
10951083 return ret;
10961084}
10971085#endif