shithub: sl

Download patch

ref: 4d596eb162c4f8bca66754a279d013c2edb4c274
parent: 916bf9059194beb6d9a347b1c0638d9f64b4b0df
author: Sigrid Solveig Haflínudóttir <sigrid@ftrv.se>
date: Mon Feb 17 01:27:10 EST 2025

print: assume all builtins can be looked uo by their pointer

--- a/src/print.c
+++ b/src/print.c
@@ -817,18 +817,14 @@
 	value_t label;
 
 	if(cv_class(cv) == FL(builtintype)){
-		void *fptr = *(void**)data;
 		label = (value_t)ptrhash_get(&FL(reverse_dlsym_lookup_table), cv);
-		if(label == (value_t)HT_NOTFOUND){
-			FL(hpos) += ios_printf(f, "#<builtin @%p>", fptr);
+		assert(label != (value_t)HT_NOTFOUND);
+		if(FL(print_princ)){
+			outs(f, symbol_name(label));
 		}else{
-			if(FL(print_princ)){
-				outs(f, symbol_name(label));
-			}else{
-				outsn(f, "#fn(", 4);
-				outs(f, symbol_name(label));
-				outc(f, ')');
-			}
+			outsn(f, "#fn(", 4);
+			outs(f, symbol_name(label));
+			outc(f, ')');
 		}
 	}else if(cv_class(cv)->vtable != nil && cv_class(cv)->vtable->print != nil){
 		cv_class(cv)->vtable->print(v, f);