on master help sign in
rts: fix unreachable free(buffer)
b9190caMort Yao
rts/idris_rts.c+4−2
@@ -501,6 +501,7 @@ VAL idris_strlen(VM* vm, VAL l) {
501}
501}
502
502
503VAL idris_readStr(VM* vm, FILE* h) {
503VAL idris_readStr(VM* vm, FILE* h) {
504+ VAL ret;
504 char *buffer = NULL;
505 char *buffer = NULL;
505 size_t n = 0;
506 size_t n = 0;
506 ssize_t len;
507 ssize_t len;
@@ -508,11 +509,12 @@ VAL idris_readStr(VM* vm, FILE* h) {
508 strtok(buffer, "\n");
509 strtok(buffer, "\n");
509
510
510 if (len <= 0) {
511 if (len <= 0) {
511− return MKSTR(vm, "");
512+ ret = MKSTR(vm, "");
512 } else {
513 } else {
513− return MKSTR(vm, buffer);
514+ ret = MKSTR(vm, buffer);
514 }
515 }
515 free(buffer);
516 free(buffer);
517+ return ret;
516}
518}
517
519
518VAL idris_strHead(VM* vm, VAL str) {
520VAL idris_strHead(VM* vm, VAL str) {