aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKim F. Storm2002-03-01 20:59:55 +0000
committerKim F. Storm2002-03-01 20:59:55 +0000
commitb7301bff689b9c38b6b4dfe35685ab7d3c7abc80 (patch)
tree3f4ff39ca09ea63a8fd341eb8938d9968d065d48 /src
parent4d766b593cc0cfa0e214d747e8172ec0adcce6dd (diff)
downloademacs-b7301bff689b9c38b6b4dfe35685ab7d3c7abc80.tar.gz
emacs-b7301bff689b9c38b6b4dfe35685ab7d3c7abc80.zip
(GCPRO6): New macro.
Diffstat (limited to 'src')
-rw-r--r--src/lisp.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/lisp.h b/src/lisp.h
index 4b73c019054..2cb57821f18 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -1826,6 +1826,8 @@ struct gcpro
1826 (((void) gcpro4, (void) gcpro3, (void) gcpro2, (void) gcpro1)) 1826 (((void) gcpro4, (void) gcpro3, (void) gcpro2, (void) gcpro1))
1827#define GCPRO5(varname1, varname2, varname3, varname4, varname5) \ 1827#define GCPRO5(varname1, varname2, varname3, varname4, varname5) \
1828 (((void) gcpro5, (void) gcpro4, (void) gcpro3, (void) gcpro2, (void) gcpro1)) 1828 (((void) gcpro5, (void) gcpro4, (void) gcpro3, (void) gcpro2, (void) gcpro1))
1829#define GCPRO6(varname1, varname2, varname3, varname4, varname5, varname6) \
1830 (((void) gcpro6, (void) gcpro5, (void) gcpro4, (void) gcpro3, (void) gcpro2, (void) gcpro1))
1829#define UNGCPRO ((void) 0) 1831#define UNGCPRO ((void) 0)
1830 1832
1831#else /* GC_MARK_STACK != GC_MAKE_GCPROS_NOOPS */ 1833#else /* GC_MARK_STACK != GC_MAKE_GCPROS_NOOPS */
@@ -1862,6 +1864,15 @@ struct gcpro
1862 gcpro5.next = &gcpro4; gcpro5.var = &varname5; gcpro5.nvars = 1; \ 1864 gcpro5.next = &gcpro4; gcpro5.var = &varname5; gcpro5.nvars = 1; \
1863 gcprolist = &gcpro5; } 1865 gcprolist = &gcpro5; }
1864 1866
1867#define GCPRO6(varname1, varname2, varname3, varname4, varname5, varname6) \
1868 {gcpro1.next = gcprolist; gcpro1.var = &varname1; gcpro1.nvars = 1; \
1869 gcpro2.next = &gcpro1; gcpro2.var = &varname2; gcpro2.nvars = 1; \
1870 gcpro3.next = &gcpro2; gcpro3.var = &varname3; gcpro3.nvars = 1; \
1871 gcpro4.next = &gcpro3; gcpro4.var = &varname4; gcpro4.nvars = 1; \
1872 gcpro5.next = &gcpro4; gcpro5.var = &varname5; gcpro5.nvars = 1; \
1873 gcpro6.next = &gcpro5; gcpro6.var = &varname6; gcpro6.nvars = 1; \
1874 gcprolist = &gcpro6; }
1875
1865#define UNGCPRO (gcprolist = gcpro1.next) 1876#define UNGCPRO (gcprolist = gcpro1.next)
1866 1877
1867#else 1878#else
@@ -1907,6 +1918,17 @@ extern int gcpro_level;
1907 gcpro5.level = gcpro_level++; \ 1918 gcpro5.level = gcpro_level++; \
1908 gcprolist = &gcpro5; } 1919 gcprolist = &gcpro5; }
1909 1920
1921#define GCPRO6(varname1, varname2, varname3, varname4, varname5, varname6) \
1922 {gcpro1.next = gcprolist; gcpro1.var = &varname1; gcpro1.nvars = 1; \
1923 gcpro1.level = gcpro_level; \
1924 gcpro2.next = &gcpro1; gcpro2.var = &varname2; gcpro2.nvars = 1; \
1925 gcpro3.next = &gcpro2; gcpro3.var = &varname3; gcpro3.nvars = 1; \
1926 gcpro4.next = &gcpro3; gcpro4.var = &varname4; gcpro4.nvars = 1; \
1927 gcpro5.next = &gcpro4; gcpro5.var = &varname5; gcpro5.nvars = 1; \
1928 gcpro6.next = &gcpro5; gcpro6.var = &varname6; gcpro6.nvars = 1; \
1929 gcpro6.level = gcpro_level++; \
1930 gcprolist = &gcpro6; }
1931
1910#define UNGCPRO \ 1932#define UNGCPRO \
1911 ((--gcpro_level != gcpro1.level) \ 1933 ((--gcpro_level != gcpro1.level) \
1912 ? (abort (), 0) \ 1934 ? (abort (), 0) \