From b7301bff689b9c38b6b4dfe35685ab7d3c7abc80 Mon Sep 17 00:00:00 2001 From: "Kim F. Storm" Date: Fri, 1 Mar 2002 20:59:55 +0000 Subject: [PATCH] (GCPRO6): New macro. --- src/lisp.h | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/lisp.h b/src/lisp.h index 4b73c01905..2cb57821f1 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -1826,6 +1826,8 @@ struct gcpro (((void) gcpro4, (void) gcpro3, (void) gcpro2, (void) gcpro1)) #define GCPRO5(varname1, varname2, varname3, varname4, varname5) \ (((void) gcpro5, (void) gcpro4, (void) gcpro3, (void) gcpro2, (void) gcpro1)) +#define GCPRO6(varname1, varname2, varname3, varname4, varname5, varname6) \ + (((void) gcpro6, (void) gcpro5, (void) gcpro4, (void) gcpro3, (void) gcpro2, (void) gcpro1)) #define UNGCPRO ((void) 0) #else /* GC_MARK_STACK != GC_MAKE_GCPROS_NOOPS */ @@ -1862,6 +1864,15 @@ struct gcpro gcpro5.next = &gcpro4; gcpro5.var = &varname5; gcpro5.nvars = 1; \ gcprolist = &gcpro5; } +#define GCPRO6(varname1, varname2, varname3, varname4, varname5, varname6) \ + {gcpro1.next = gcprolist; gcpro1.var = &varname1; gcpro1.nvars = 1; \ + gcpro2.next = &gcpro1; gcpro2.var = &varname2; gcpro2.nvars = 1; \ + gcpro3.next = &gcpro2; gcpro3.var = &varname3; gcpro3.nvars = 1; \ + gcpro4.next = &gcpro3; gcpro4.var = &varname4; gcpro4.nvars = 1; \ + gcpro5.next = &gcpro4; gcpro5.var = &varname5; gcpro5.nvars = 1; \ + gcpro6.next = &gcpro5; gcpro6.var = &varname6; gcpro6.nvars = 1; \ + gcprolist = &gcpro6; } + #define UNGCPRO (gcprolist = gcpro1.next) #else @@ -1907,6 +1918,17 @@ extern int gcpro_level; gcpro5.level = gcpro_level++; \ gcprolist = &gcpro5; } +#define GCPRO6(varname1, varname2, varname3, varname4, varname5, varname6) \ + {gcpro1.next = gcprolist; gcpro1.var = &varname1; gcpro1.nvars = 1; \ + gcpro1.level = gcpro_level; \ + gcpro2.next = &gcpro1; gcpro2.var = &varname2; gcpro2.nvars = 1; \ + gcpro3.next = &gcpro2; gcpro3.var = &varname3; gcpro3.nvars = 1; \ + gcpro4.next = &gcpro3; gcpro4.var = &varname4; gcpro4.nvars = 1; \ + gcpro5.next = &gcpro4; gcpro5.var = &varname5; gcpro5.nvars = 1; \ + gcpro6.next = &gcpro5; gcpro6.var = &varname6; gcpro6.nvars = 1; \ + gcpro6.level = gcpro_level++; \ + gcprolist = &gcpro6; } + #define UNGCPRO \ ((--gcpro_level != gcpro1.level) \ ? (abort (), 0) \ -- 2.20.1