From f771c8a428b61bc642f9c2069968ca9d951ae1d2 Mon Sep 17 00:00:00 2001 From: "K. Lange" Date: Tue, 5 Jan 2021 07:51:42 +0900 Subject: [PATCH] fileio gc fixups --- src/fileio.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/fileio.c b/src/fileio.c index dd55fa5..77f8442 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -234,12 +234,16 @@ static KrkValue krk_file_reject_init(int argc, KrkValue argv[]) { static void makeFileInstance(KrkInstance * module, const char name[], FILE * file) { KrkInstance * fileObject = krk_newInstance(FileClass); krk_push(OBJECT_VAL(fileObject)); + KrkValue filename = OBJECT_VAL(krk_copyString(name,strlen(name))); + krk_push(filename); - krk_attachNamedObject(&fileObject->fields, "filename", (KrkObj*)krk_copyString(name,strlen(name))); + krk_attachNamedValue(&fileObject->fields, "filename", filename); krk_attachNamedValue(&fileObject->fields, "_fileptr", INTEGER_VAL((long)(file))); krk_attachNamedObject(&module->fields, name, (KrkObj*)fileObject); - krk_pop(); + + krk_pop(); /* filename */ + krk_pop(); /* fileObject */ } KrkValue krk_module_onload_fileio(void) {