diff options
| author | Richard M. Stallman | 1994-06-22 20:11:29 +0000 |
|---|---|---|
| committer | Richard M. Stallman | 1994-06-22 20:11:29 +0000 |
| commit | c47b8d0264eb40a6a428d9b65631729c3cb81b6c (patch) | |
| tree | 9ec920e263e48c5cc9b8efc5f786e253eb6e4473 /src | |
| parent | 5867a409eebad8a6433e59c540ebdd4bccb72543 (diff) | |
| download | emacs-c47b8d0264eb40a6a428d9b65631729c3cb81b6c.tar.gz emacs-c47b8d0264eb40a6a428d9b65631729c3cb81b6c.zip | |
(RETURN_UNGCPRO): Swallow semicolon.
(GCPRO5): New macro.
Diffstat (limited to 'src')
| -rw-r--r-- | src/lisp.h | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/src/lisp.h b/src/lisp.h index a66c1c97178..cd3f7fc7c3c 100644 --- a/src/lisp.h +++ b/src/lisp.h | |||
| @@ -1069,6 +1069,14 @@ struct gcpro | |||
| 1069 | gcpro4.next = &gcpro3; gcpro4.var = &varname4; gcpro4.nvars = 1; \ | 1069 | gcpro4.next = &gcpro3; gcpro4.var = &varname4; gcpro4.nvars = 1; \ |
| 1070 | gcprolist = &gcpro4; } | 1070 | gcprolist = &gcpro4; } |
| 1071 | 1071 | ||
| 1072 | #define GCPRO5(varname1, varname2, varname3, varname4, varname5) \ | ||
| 1073 | {gcpro1.next = gcprolist; gcpro1.var = &varname1; gcpro1.nvars = 1; \ | ||
| 1074 | gcpro2.next = &gcpro1; gcpro2.var = &varname2; gcpro2.nvars = 1; \ | ||
| 1075 | gcpro3.next = &gcpro2; gcpro3.var = &varname3; gcpro3.nvars = 1; \ | ||
| 1076 | gcpro4.next = &gcpro3; gcpro4.var = &varname4; gcpro4.nvars = 1; \ | ||
| 1077 | gcpro5.next = &gcpro4; gcpro5.var = &varname5; gcpro5.nvars = 1; \ | ||
| 1078 | gcprolist = &gcpro5; } | ||
| 1079 | |||
| 1072 | /* Call staticpro (&var) to protect static variable `var'. */ | 1080 | /* Call staticpro (&var) to protect static variable `var'. */ |
| 1073 | 1081 | ||
| 1074 | void staticpro(); | 1082 | void staticpro(); |
| @@ -1079,13 +1087,15 @@ void staticpro(); | |||
| 1079 | to have a `do ... while' clause around this to make it interact | 1087 | to have a `do ... while' clause around this to make it interact |
| 1080 | with semicolons correctly, but this makes some compilers complain | 1088 | with semicolons correctly, but this makes some compilers complain |
| 1081 | that the while is never reached. */ | 1089 | that the while is never reached. */ |
| 1082 | #define RETURN_UNGCPRO(expr) \ | 1090 | #define RETURN_UNGCPRO(expr) \ |
| 1083 | { \ | 1091 | do \ |
| 1084 | Lisp_Object ret_ungc_val; \ | 1092 | { \ |
| 1085 | ret_ungc_val = (expr); \ | 1093 | Lisp_Object ret_ungc_val; \ |
| 1086 | UNGCPRO; \ | 1094 | ret_ungc_val = (expr); \ |
| 1087 | return ret_ungc_val; \ | 1095 | UNGCPRO; \ |
| 1088 | } | 1096 | return ret_ungc_val; \ |
| 1097 | } \ | ||
| 1098 | while (1) | ||
| 1089 | 1099 | ||
| 1090 | /* Defined in data.c */ | 1100 | /* Defined in data.c */ |
| 1091 | extern Lisp_Object Qnil, Qt, Qquote, Qlambda, Qsubr, Qunbound; | 1101 | extern Lisp_Object Qnil, Qt, Qquote, Qlambda, Qsubr, Qunbound; |