diff options
| author | Kim F. Storm | 2002-03-01 20:59:55 +0000 |
|---|---|---|
| committer | Kim F. Storm | 2002-03-01 20:59:55 +0000 |
| commit | b7301bff689b9c38b6b4dfe35685ab7d3c7abc80 (patch) | |
| tree | 3f4ff39ca09ea63a8fd341eb8938d9968d065d48 /src | |
| parent | 4d766b593cc0cfa0e214d747e8172ec0adcce6dd (diff) | |
| download | emacs-b7301bff689b9c38b6b4dfe35685ab7d3c7abc80.tar.gz emacs-b7301bff689b9c38b6b4dfe35685ab7d3c7abc80.zip | |
(GCPRO6): New macro.
Diffstat (limited to 'src')
| -rw-r--r-- | src/lisp.h | 22 |
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) \ |