diff --git a/src/memory.cpp b/src/memory.cpp index 5b5209e..695f90b 100644 --- a/src/memory.cpp +++ b/src/memory.cpp @@ -151,11 +151,11 @@ namespace Memory { next_free_spot_in_string_memory = string_memory; // init nil - try nil = create_lisp_object(); + try_void nil = create_lisp_object(); set_type(nil, Lisp_Object_Type::Nil); // init t - try t = create_lisp_object(); + try_void t = create_lisp_object(); set_type(t, Lisp_Object_Type::T); } diff --git a/src/parse.cpp b/src/parse.cpp index 6d1f745..95bd33d 100644 --- a/src/parse.cpp +++ b/src/parse.cpp @@ -275,11 +275,14 @@ namespace Parser { try ret = Memory::create_lisp_object_pair( Memory::get_or_create_lisp_object_symbol("quasiquote"), Memory::create_lisp_object_pair(result, Memory::nil)); - else if (quoteType == ',') + else if (quoteType == ',') { try ret = Memory::create_lisp_object_pair( Memory::get_or_create_lisp_object_symbol("unquote"), Memory::create_lisp_object_pair(result, Memory::nil)); - inject_scl(ret); + } + if (ret) { + inject_scl(ret); + } return ret; }