From 357336b5f1fdbb3a0b570ae18ec17adf16be4a53 Mon Sep 17 00:00:00 2001 From: Nick Briggs Date: Fri, 18 Jul 2025 09:12:43 -0700 Subject: [PATCH] Rewrites (and makes static) findptrsbuffer to avoid multiple conversions between Lisp and native pointers --- inc/gcfinaldefs.h | 1 - src/gcfinal.c | 18 ++++++++++-------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/inc/gcfinaldefs.h b/inc/gcfinaldefs.h index fa6d0a0..7918e1c 100644 --- a/inc/gcfinaldefs.h +++ b/inc/gcfinaldefs.h @@ -2,7 +2,6 @@ #define GCFINALDEFS_H 1 #include "lispemul.h" /* for LispPTR, DLword */ void printarrayblock(LispPTR base); -LispPTR findptrsbuffer(LispPTR ptr); LispPTR releasingvmempage(LispPTR ptr); LispPTR checkarrayblock(LispPTR base, LispPTR free, LispPTR onfreelist); LispPTR deleteblock(LispPTR base); diff --git a/src/gcfinal.c b/src/gcfinal.c index 1d44336..2d75968 100644 --- a/src/gcfinal.c +++ b/src/gcfinal.c @@ -138,14 +138,16 @@ static int integerlength(unsigned int n) { /* */ /************************************************************************/ -LispPTR findptrsbuffer(LispPTR ptr) { - struct buf *bptr; - bptr = (struct buf *)NativeAligned4FromLAddr(*System_Buffer_List_word); - while (LAddrFromNative(bptr) != NIL) { - if (ptr == bptr->vmempage) - return (LAddrFromNative(bptr)); - else - bptr = (struct buf *)NativeAligned4FromLAddr(bptr->sysnext); +static LispPTR findptrsbuffer(LispPTR ptr) { + LispPTR buf; + struct buf *buf_np; + buf = *System_Buffer_List_word; + while (buf != NIL) { + buf_np = (struct buf *)NativeAligned4FromLAddr(buf); + if (ptr == buf_np->vmempage) { + return (buf); + } + buf = buf_np->sysnext; } return (NIL); }