diff options
| author | Paul Eggert | 2011-11-28 00:20:58 -0800 |
|---|---|---|
| committer | Paul Eggert | 2011-11-28 00:20:58 -0800 |
| commit | dbf312256d8a8c731dadaf27c1260832a3796350 (patch) | |
| tree | e24d4b7c814d5f292c779b192371cb7475b0eef6 /src | |
| parent | e95def75e4a3fae3f5671cc828012388f0e251f5 (diff) | |
| download | emacs-dbf312256d8a8c731dadaf27c1260832a3796350.tar.gz emacs-dbf312256d8a8c731dadaf27c1260832a3796350.zip | |
Remove GCPRO-related macros that exist only to avoid shadowing locals.
* lisp.h (GCPRO1_VAR, GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR, GCPRO5_VAR)
(GCPRO6_VAR, UNGCPRO_VAR): Remove. See
<http://lists.gnu.org/archive/html/emacs-diffs/2011-11/msg00265.html>.
All uses changed to use GCPRO1 etc.
(GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6, UNGCPRO):
Revert to old implementation (i.e., before 2011-03-11).
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 10 | ||||
| -rw-r--r-- | src/dired.c | 18 | ||||
| -rw-r--r-- | src/keyboard.c | 14 | ||||
| -rw-r--r-- | src/lisp.h | 228 | ||||
| -rw-r--r-- | src/process.c | 10 | ||||
| -rw-r--r-- | src/xfns.c | 12 |
6 files changed, 143 insertions, 149 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 83b625d279e..915e0659a0e 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,13 @@ | |||
| 1 | 2011-11-28 Paul Eggert <eggert@cs.ucla.edu> | ||
| 2 | |||
| 3 | Remove GCPRO-related macros that exist only to avoid shadowing locals. | ||
| 4 | * lisp.h (GCPRO1_VAR, GCPRO2_VAR, GCPRO3_VAR, GCPRO4_VAR, GCPRO5_VAR) | ||
| 5 | (GCPRO6_VAR, UNGCPRO_VAR): Remove. See | ||
| 6 | <http://lists.gnu.org/archive/html/emacs-diffs/2011-11/msg00265.html>. | ||
| 7 | All uses changed to use GCPRO1 etc. | ||
| 8 | (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6, UNGCPRO): | ||
| 9 | Revert to old implementation (i.e., before 2011-03-11). | ||
| 10 | |||
| 1 | 2011-11-28 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> | 11 | 2011-11-28 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> |
| 2 | 12 | ||
| 3 | * dispnew.c (scrolling_window): Truncate overlaps in copy destination | 13 | * dispnew.c (scrolling_window): Truncate overlaps in copy destination |
diff --git a/src/dired.c b/src/dired.c index acc81a6ed9d..2b5f3b40641 100644 --- a/src/dired.c +++ b/src/dired.c | |||
| @@ -229,11 +229,11 @@ directory_files_internal (Lisp_Object directory, Lisp_Object full, Lisp_Object m | |||
| 229 | int len; | 229 | int len; |
| 230 | int wanted = 0; | 230 | int wanted = 0; |
| 231 | Lisp_Object name, finalname; | 231 | Lisp_Object name, finalname; |
| 232 | struct gcpro inner_gcpro1, inner_gcpro2; | 232 | struct gcpro gcpro1, gcpro2; |
| 233 | 233 | ||
| 234 | len = NAMLEN (dp); | 234 | len = NAMLEN (dp); |
| 235 | name = finalname = make_unibyte_string (dp->d_name, len); | 235 | name = finalname = make_unibyte_string (dp->d_name, len); |
| 236 | GCPRO2_VAR (finalname, name, inner_gcpro); | 236 | GCPRO2 (finalname, name); |
| 237 | 237 | ||
| 238 | /* Note: DECODE_FILE can GC; it should protect its argument, | 238 | /* Note: DECODE_FILE can GC; it should protect its argument, |
| 239 | though. */ | 239 | though. */ |
| @@ -289,23 +289,23 @@ directory_files_internal (Lisp_Object directory, Lisp_Object full, Lisp_Object m | |||
| 289 | /* Construct an expanded filename for the directory entry. | 289 | /* Construct an expanded filename for the directory entry. |
| 290 | Use the decoded names for input to Ffile_attributes. */ | 290 | Use the decoded names for input to Ffile_attributes. */ |
| 291 | Lisp_Object decoded_fullname, fileattrs; | 291 | Lisp_Object decoded_fullname, fileattrs; |
| 292 | struct gcpro innermost_gcpro1, innermost_gcpro2; | 292 | struct gcpro gcpro1, gcpro2; |
| 293 | 293 | ||
| 294 | decoded_fullname = fileattrs = Qnil; | 294 | decoded_fullname = fileattrs = Qnil; |
| 295 | GCPRO2_VAR (decoded_fullname, fileattrs, innermost_gcpro); | 295 | GCPRO2 (decoded_fullname, fileattrs); |
| 296 | 296 | ||
| 297 | /* Both Fexpand_file_name and Ffile_attributes can GC. */ | 297 | /* Both Fexpand_file_name and Ffile_attributes can GC. */ |
| 298 | decoded_fullname = Fexpand_file_name (name, directory); | 298 | decoded_fullname = Fexpand_file_name (name, directory); |
| 299 | fileattrs = Ffile_attributes (decoded_fullname, id_format); | 299 | fileattrs = Ffile_attributes (decoded_fullname, id_format); |
| 300 | 300 | ||
| 301 | list = Fcons (Fcons (finalname, fileattrs), list); | 301 | list = Fcons (Fcons (finalname, fileattrs), list); |
| 302 | UNGCPRO_VAR (innermost_gcpro); | 302 | UNGCPRO; |
| 303 | } | 303 | } |
| 304 | else | 304 | else |
| 305 | list = Fcons (finalname, list); | 305 | list = Fcons (finalname, list); |
| 306 | } | 306 | } |
| 307 | 307 | ||
| 308 | UNGCPRO_VAR (inner_gcpro); | 308 | UNGCPRO; |
| 309 | } | 309 | } |
| 310 | } | 310 | } |
| 311 | 311 | ||
| @@ -673,11 +673,11 @@ file_name_completion (Lisp_Object file, Lisp_Object dirname, int all_flag, int v | |||
| 673 | if (!NILP (predicate)) | 673 | if (!NILP (predicate)) |
| 674 | { | 674 | { |
| 675 | Lisp_Object val; | 675 | Lisp_Object val; |
| 676 | struct gcpro inner_gcpro1; | 676 | struct gcpro gcpro1; |
| 677 | 677 | ||
| 678 | GCPRO1_VAR (name, inner_gcpro); | 678 | GCPRO1 (name); |
| 679 | val = call1 (predicate, name); | 679 | val = call1 (predicate, name); |
| 680 | UNGCPRO_VAR (inner_gcpro); | 680 | UNGCPRO; |
| 681 | 681 | ||
| 682 | if (NILP (val)) | 682 | if (NILP (val)) |
| 683 | continue; | 683 | continue; |
diff --git a/src/keyboard.c b/src/keyboard.c index 9b4ba427c24..e74c7ca1c68 100644 --- a/src/keyboard.c +++ b/src/keyboard.c | |||
| @@ -2998,7 +2998,7 @@ read_char (int commandflag, ptrdiff_t nmaps, Lisp_Object *maps, | |||
| 2998 | { | 2998 | { |
| 2999 | Lisp_Object keys; | 2999 | Lisp_Object keys; |
| 3000 | int key_count, key_count_reset; | 3000 | int key_count, key_count_reset; |
| 3001 | struct gcpro inner_gcpro1; | 3001 | struct gcpro gcpro1; |
| 3002 | int count = SPECPDL_INDEX (); | 3002 | int count = SPECPDL_INDEX (); |
| 3003 | 3003 | ||
| 3004 | /* Save the echo status. */ | 3004 | /* Save the echo status. */ |
| @@ -3026,7 +3026,7 @@ read_char (int commandflag, ptrdiff_t nmaps, Lisp_Object *maps, | |||
| 3026 | keys = Fcopy_sequence (this_command_keys); | 3026 | keys = Fcopy_sequence (this_command_keys); |
| 3027 | else | 3027 | else |
| 3028 | keys = Qnil; | 3028 | keys = Qnil; |
| 3029 | GCPRO1_VAR (keys, inner_gcpro); | 3029 | GCPRO1 (keys); |
| 3030 | 3030 | ||
| 3031 | /* Clear out this_command_keys. */ | 3031 | /* Clear out this_command_keys. */ |
| 3032 | this_command_key_count = 0; | 3032 | this_command_key_count = 0; |
| @@ -3064,7 +3064,7 @@ read_char (int commandflag, ptrdiff_t nmaps, Lisp_Object *maps, | |||
| 3064 | if (saved_immediate_echo) | 3064 | if (saved_immediate_echo) |
| 3065 | echo_now (); | 3065 | echo_now (); |
| 3066 | 3066 | ||
| 3067 | UNGCPRO_VAR (inner_gcpro); | 3067 | UNGCPRO; |
| 3068 | 3068 | ||
| 3069 | /* The input method can return no events. */ | 3069 | /* The input method can return no events. */ |
| 3070 | if (! CONSP (tem)) | 3070 | if (! CONSP (tem)) |
| @@ -9053,9 +9053,9 @@ read_key_sequence (Lisp_Object *keybuf, int bufsize, Lisp_Object prompt, | |||
| 9053 | int junk; | 9053 | int junk; |
| 9054 | #endif | 9054 | #endif |
| 9055 | 9055 | ||
| 9056 | struct gcpro outer_gcpro1; | 9056 | struct gcpro gcpro1; |
| 9057 | 9057 | ||
| 9058 | GCPRO1_VAR (fake_prefixed_keys, outer_gcpro); | 9058 | GCPRO1 (fake_prefixed_keys); |
| 9059 | raw_keybuf_count = 0; | 9059 | raw_keybuf_count = 0; |
| 9060 | 9060 | ||
| 9061 | last_nonmenu_event = Qnil; | 9061 | last_nonmenu_event = Qnil; |
| @@ -9351,7 +9351,7 @@ read_key_sequence (Lisp_Object *keybuf, int bufsize, Lisp_Object prompt, | |||
| 9351 | if (EQ (key, Qt)) | 9351 | if (EQ (key, Qt)) |
| 9352 | { | 9352 | { |
| 9353 | unbind_to (count, Qnil); | 9353 | unbind_to (count, Qnil); |
| 9354 | UNGCPRO_VAR (outer_gcpro); | 9354 | UNGCPRO; |
| 9355 | return -1; | 9355 | return -1; |
| 9356 | } | 9356 | } |
| 9357 | 9357 | ||
| @@ -10049,7 +10049,7 @@ read_key_sequence (Lisp_Object *keybuf, int bufsize, Lisp_Object prompt, | |||
| 10049 | add_command_key (keybuf[t]); | 10049 | add_command_key (keybuf[t]); |
| 10050 | } | 10050 | } |
| 10051 | 10051 | ||
| 10052 | UNGCPRO_VAR (outer_gcpro); | 10052 | UNGCPRO; |
| 10053 | return t; | 10053 | return t; |
| 10054 | } | 10054 | } |
| 10055 | 10055 | ||
diff --git a/src/lisp.h b/src/lisp.h index 5735c207241..e645fbd65a5 100644 --- a/src/lisp.h +++ b/src/lisp.h | |||
| @@ -2223,143 +2223,127 @@ struct gcpro | |||
| 2223 | || GC_MARK_STACK == GC_MARK_STACK_CHECK_GCPROS) | 2223 | || GC_MARK_STACK == GC_MARK_STACK_CHECK_GCPROS) |
| 2224 | 2224 | ||
| 2225 | 2225 | ||
| 2226 | #define GCPRO1(var) \ | ||
| 2227 | GCPRO1_VAR (var, gcpro) | ||
| 2228 | #define GCPRO2(var1, var2) \ | ||
| 2229 | GCPRO2_VAR (var1, var2, gcpro) | ||
| 2230 | #define GCPRO3(var1, var2, var3) \ | ||
| 2231 | GCPRO3_VAR (var1, var2, var3, gcpro) | ||
| 2232 | #define GCPRO4(var1, var2, var3, var4) \ | ||
| 2233 | GCPRO4_VAR (var1, var2, var3, var4, gcpro) | ||
| 2234 | #define GCPRO5(var1, var2, var3, var4, var5) \ | ||
| 2235 | GCPRO5_VAR (var1, var2, var3, var4, var5, gcpro) | ||
| 2236 | #define GCPRO6(var1, var2, var3, var4, var5, var6) \ | ||
| 2237 | GCPRO6_VAR (var1, var2, var3, var4, var5, var6, gcpro) | ||
| 2238 | #define UNGCPRO UNGCPRO_VAR (gcpro) | ||
| 2239 | |||
| 2240 | #if GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS | 2226 | #if GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS |
| 2241 | 2227 | ||
| 2242 | /* Do something silly with gcproN vars just so gcc shuts up. */ | 2228 | /* Do something silly with gcproN vars just so gcc shuts up. */ |
| 2243 | /* You get warnings from MIPSPro... */ | 2229 | /* You get warnings from MIPSPro... */ |
| 2244 | 2230 | ||
| 2245 | #define GCPRO1_VAR(var, gcpro) ((void) gcpro##1) | 2231 | #define GCPRO1(varname) ((void) gcpro1) |
| 2246 | #define GCPRO2_VAR(var1, var2, gcpro) \ | 2232 | #define GCPRO2(varname1, varname2) ((void) gcpro2, (void) gcpro1) |
| 2247 | ((void) gcpro##2, (void) gcpro##1) | 2233 | #define GCPRO3(varname1, varname2, varname3) \ |
| 2248 | #define GCPRO3_VAR(var1, var2, var3, gcpro) \ | 2234 | ((void) gcpro3, (void) gcpro2, (void) gcpro1) |
| 2249 | ((void) gcpro##3, (void) gcpro##2, (void) gcpro##1) | 2235 | #define GCPRO4(varname1, varname2, varname3, varname4) \ |
| 2250 | #define GCPRO4_VAR(var1, var2, var3, var4, gcpro) \ | 2236 | ((void) gcpro4, (void) gcpro3, (void) gcpro2, (void) gcpro1) |
| 2251 | ((void) gcpro##4, (void) gcpro##3, (void) gcpro##2, (void) gcpro##1) | 2237 | #define GCPRO5(varname1, varname2, varname3, varname4, varname5) \ |
| 2252 | #define GCPRO5_VAR(var1, var2, var3, var4, var5, gcpro) \ | 2238 | ((void) gcpro5, (void) gcpro4, (void) gcpro3, (void) gcpro2, (void) gcpro1) |
| 2253 | ((void) gcpro##5, (void) gcpro##4, (void) gcpro##3, (void) gcpro##2, \ | 2239 | #define GCPRO6(varname1, varname2, varname3, varname4, varname5, varname6) \ |
| 2254 | (void) gcpro##1) | 2240 | ((void) gcpro6, (void) gcpro5, (void) gcpro4, (void) gcpro3, (void) gcpro2, \ |
| 2255 | #define GCPRO6_VAR(var1, var2, var3, var4, var5, var6, gcpro) \ | 2241 | (void) gcpro1) |
| 2256 | ((void) gcpro##6, (void) gcpro##5, (void) gcpro##4, (void) gcpro##3, \ | 2242 | #define UNGCPRO ((void) 0) |
| 2257 | (void) gcpro##2, (void) gcpro##1) | ||
| 2258 | #define UNGCPRO_VAR(gcpro) ((void) 0) | ||
| 2259 | 2243 | ||
| 2260 | #else /* GC_MARK_STACK != GC_MAKE_GCPROS_NOOPS */ | 2244 | #else /* GC_MARK_STACK != GC_MAKE_GCPROS_NOOPS */ |
| 2261 | 2245 | ||
| 2262 | #ifndef DEBUG_GCPRO | 2246 | #ifndef DEBUG_GCPRO |
| 2263 | 2247 | ||
| 2264 | #define GCPRO1_VAR(var1, gcpro) \ | 2248 | #define GCPRO1(varname) \ |
| 2265 | {gcpro##1 .next = gcprolist; gcpro##1 .var = &var1; gcpro##1 .nvars = 1; \ | 2249 | {gcpro1.next = gcprolist; gcpro1.var = &varname; gcpro1.nvars = 1; \ |
| 2266 | gcprolist = &gcpro##1; } | 2250 | gcprolist = &gcpro1; } |
| 2267 | 2251 | ||
| 2268 | #define GCPRO2_VAR(var1, var2, gcpro) \ | 2252 | #define GCPRO2(varname1, varname2) \ |
| 2269 | {gcpro##1 .next = gcprolist; gcpro##1 .var = &var1; gcpro##1 .nvars = 1; \ | 2253 | {gcpro1.next = gcprolist; gcpro1.var = &varname1; gcpro1.nvars = 1; \ |
| 2270 | gcpro##2 .next = &gcpro##1; gcpro##2 .var = &var2; gcpro##2 .nvars = 1; \ | 2254 | gcpro2.next = &gcpro1; gcpro2.var = &varname2; gcpro2.nvars = 1; \ |
| 2271 | gcprolist = &gcpro##2; } | 2255 | gcprolist = &gcpro2; } |
| 2272 | 2256 | ||
| 2273 | #define GCPRO3_VAR(var1, var2, var3, gcpro) \ | 2257 | #define GCPRO3(varname1, varname2, varname3) \ |
| 2274 | {gcpro##1 .next = gcprolist; gcpro##1 .var = &var1; gcpro##1 .nvars = 1; \ | 2258 | {gcpro1.next = gcprolist; gcpro1.var = &varname1; gcpro1.nvars = 1; \ |
| 2275 | gcpro##2 .next = &gcpro##1; gcpro##2 .var = &var2; gcpro##2 .nvars = 1; \ | 2259 | gcpro2.next = &gcpro1; gcpro2.var = &varname2; gcpro2.nvars = 1; \ |
| 2276 | gcpro##3 .next = &gcpro##2; gcpro##3 .var = &var3; gcpro##3 .nvars = 1; \ | 2260 | gcpro3.next = &gcpro2; gcpro3.var = &varname3; gcpro3.nvars = 1; \ |
| 2277 | gcprolist = &gcpro##3; } | 2261 | gcprolist = &gcpro3; } |
| 2278 | 2262 | ||
| 2279 | #define GCPRO4_VAR(var1, var2, var3, var4, gcpro) \ | 2263 | #define GCPRO4(varname1, varname2, varname3, varname4) \ |
| 2280 | {gcpro##1 .next = gcprolist; gcpro##1 .var = &var1; gcpro##1 .nvars = 1; \ | 2264 | {gcpro1.next = gcprolist; gcpro1.var = &varname1; gcpro1.nvars = 1; \ |
| 2281 | gcpro##2 .next = &gcpro##1; gcpro##2 .var = &var2; gcpro##2 .nvars = 1; \ | 2265 | gcpro2.next = &gcpro1; gcpro2.var = &varname2; gcpro2.nvars = 1; \ |
| 2282 | gcpro##3 .next = &gcpro##2; gcpro##3 .var = &var3; gcpro##3 .nvars = 1; \ | 2266 | gcpro3.next = &gcpro2; gcpro3.var = &varname3; gcpro3.nvars = 1; \ |
| 2283 | gcpro##4 .next = &gcpro##3; gcpro##4 .var = &var4; gcpro##4 .nvars = 1; \ | 2267 | gcpro4.next = &gcpro3; gcpro4.var = &varname4; gcpro4.nvars = 1; \ |
| 2284 | gcprolist = &gcpro##4; } | 2268 | gcprolist = &gcpro4; } |
| 2285 | 2269 | ||
| 2286 | #define GCPRO5_VAR(var1, var2, var3, var4, var5, gcpro) \ | 2270 | #define GCPRO5(varname1, varname2, varname3, varname4, varname5) \ |
| 2287 | {gcpro##1 .next = gcprolist; gcpro##1 .var = &var1; gcpro##1 .nvars = 1; \ | 2271 | {gcpro1.next = gcprolist; gcpro1.var = &varname1; gcpro1.nvars = 1; \ |
| 2288 | gcpro##2 .next = &gcpro##1; gcpro##2 .var = &var2; gcpro##2 .nvars = 1; \ | 2272 | gcpro2.next = &gcpro1; gcpro2.var = &varname2; gcpro2.nvars = 1; \ |
| 2289 | gcpro##3 .next = &gcpro##2; gcpro##3 .var = &var3; gcpro##3 .nvars = 1; \ | 2273 | gcpro3.next = &gcpro2; gcpro3.var = &varname3; gcpro3.nvars = 1; \ |
| 2290 | gcpro##4 .next = &gcpro##3; gcpro##4 .var = &var4; gcpro##4 .nvars = 1; \ | 2274 | gcpro4.next = &gcpro3; gcpro4.var = &varname4; gcpro4.nvars = 1; \ |
| 2291 | gcpro##5 .next = &gcpro##4; gcpro##5 .var = &var5; gcpro##5 .nvars = 1; \ | 2275 | gcpro5.next = &gcpro4; gcpro5.var = &varname5; gcpro5.nvars = 1; \ |
| 2292 | gcprolist = &gcpro##5; } | 2276 | gcprolist = &gcpro5; } |
| 2293 | 2277 | ||
| 2294 | #define GCPRO6_VAR(var1, var2, var3, var4, var5, var6, gcpro) \ | 2278 | #define GCPRO6(varname1, varname2, varname3, varname4, varname5, varname6) \ |
| 2295 | {gcpro##1 .next = gcprolist; gcpro##1 .var = &var1; gcpro##1 .nvars = 1; \ | 2279 | {gcpro1.next = gcprolist; gcpro1.var = &varname1; gcpro1.nvars = 1; \ |
| 2296 | gcpro##2 .next = &gcpro##1; gcpro##2 .var = &var2; gcpro##2 .nvars = 1; \ | 2280 | gcpro2.next = &gcpro1; gcpro2.var = &varname2; gcpro2.nvars = 1; \ |
| 2297 | gcpro##3 .next = &gcpro##2; gcpro##3 .var = &var3; gcpro##3 .nvars = 1; \ | 2281 | gcpro3.next = &gcpro2; gcpro3.var = &varname3; gcpro3.nvars = 1; \ |
| 2298 | gcpro##4 .next = &gcpro##3; gcpro##4 .var = &var4; gcpro##4 .nvars = 1; \ | 2282 | gcpro4.next = &gcpro3; gcpro4.var = &varname4; gcpro4.nvars = 1; \ |
| 2299 | gcpro##5 .next = &gcpro##4; gcpro##5 .var = &var5; gcpro##5 .nvars = 1; \ | 2283 | gcpro5.next = &gcpro4; gcpro5.var = &varname5; gcpro5.nvars = 1; \ |
| 2300 | gcpro##6 .next = &gcpro##5; gcpro##6 .var = &var6; gcpro##6 .nvars = 1; \ | 2284 | gcpro6.next = &gcpro5; gcpro6.var = &varname6; gcpro6.nvars = 1; \ |
| 2301 | gcprolist = &gcpro##6; } | 2285 | gcprolist = &gcpro6; } |
| 2302 | 2286 | ||
| 2303 | #define UNGCPRO_VAR(gcpro) (gcprolist = gcpro##1 .next) | 2287 | #define UNGCPRO (gcprolist = gcpro1.next) |
| 2304 | 2288 | ||
| 2305 | #else | 2289 | #else |
| 2306 | 2290 | ||
| 2307 | extern int gcpro_level; | 2291 | extern int gcpro_level; |
| 2308 | 2292 | ||
| 2309 | #define GCPRO1_VAR(var1, gcpro) \ | 2293 | #define GCPRO1(varname) \ |
| 2310 | {gcpro##1 .next = gcprolist; gcpro##1 .var = &var1; gcpro##1 .nvars = 1; \ | 2294 | {gcpro1.next = gcprolist; gcpro1.var = &varname; gcpro1.nvars = 1; \ |
| 2311 | gcpro##1 .level = gcpro_level++; \ | 2295 | gcpro1.level = gcpro_level++; \ |
| 2312 | gcprolist = &gcpro##1; } | 2296 | gcprolist = &gcpro1; } |
| 2313 | 2297 | ||
| 2314 | #define GCPRO2_VAR(var1, var2, gcpro) \ | 2298 | #define GCPRO2(varname1, varname2) \ |
| 2315 | {gcpro##1 .next = gcprolist; gcpro##1 .var = &var1; gcpro##1 .nvars = 1; \ | 2299 | {gcpro1.next = gcprolist; gcpro1.var = &varname1; gcpro1.nvars = 1; \ |
| 2316 | gcpro##1 .level = gcpro_level; \ | 2300 | gcpro1.level = gcpro_level; \ |
| 2317 | gcpro##2 .next = &gcpro##1; gcpro##2 .var = &var2; gcpro##2 .nvars = 1; \ | 2301 | gcpro2.next = &gcpro1; gcpro2.var = &varname2; gcpro2.nvars = 1; \ |
| 2318 | gcpro##2 .level = gcpro_level++; \ | 2302 | gcpro2.level = gcpro_level++; \ |
| 2319 | gcprolist = &gcpro##2; } | 2303 | gcprolist = &gcpro2; } |
| 2320 | 2304 | ||
| 2321 | #define GCPRO3_VAR(var1, var2, var3, gcpro) \ | 2305 | #define GCPRO3(varname1, varname2, varname3) \ |
| 2322 | {gcpro##1 .next = gcprolist; gcpro##1 .var = &var1; gcpro##1 .nvars = 1; \ | 2306 | {gcpro1.next = gcprolist; gcpro1.var = &varname1; gcpro1.nvars = 1; \ |
| 2323 | gcpro##1 .level = gcpro_level; \ | 2307 | gcpro1.level = gcpro_level; \ |
| 2324 | gcpro##2 .next = &gcpro##1; gcpro##2 .var = &var2; gcpro##2 .nvars = 1; \ | 2308 | gcpro2.next = &gcpro1; gcpro2.var = &varname2; gcpro2.nvars = 1; \ |
| 2325 | gcpro##3 .next = &gcpro##2; gcpro##3 .var = &var3; gcpro##3 .nvars = 1; \ | 2309 | gcpro3.next = &gcpro2; gcpro3.var = &varname3; gcpro3.nvars = 1; \ |
| 2326 | gcpro##3 .level = gcpro_level++; \ | 2310 | gcpro3.level = gcpro_level++; \ |
| 2327 | gcprolist = &gcpro##3; } | 2311 | gcprolist = &gcpro3; } |
| 2328 | 2312 | ||
| 2329 | #define GCPRO4_VAR(var1, var2, var3, var4, gcpro) \ | 2313 | #define GCPRO4(varname1, varname2, varname3, varname4) \ |
| 2330 | {gcpro##1 .next = gcprolist; gcpro##1 .var = &var1; gcpro##1 .nvars = 1; \ | 2314 | {gcpro1.next = gcprolist; gcpro1.var = &varname1; gcpro1.nvars = 1; \ |
| 2331 | gcpro##1 .level = gcpro_level; \ | 2315 | gcpro1.level = gcpro_level; \ |
| 2332 | gcpro##2 .next = &gcpro##1; gcpro##2 .var = &var2; gcpro##2 .nvars = 1; \ | 2316 | gcpro2.next = &gcpro1; gcpro2.var = &varname2; gcpro2.nvars = 1; \ |
| 2333 | gcpro##3 .next = &gcpro##2; gcpro##3 .var = &var3; gcpro##3 .nvars = 1; \ | 2317 | gcpro3.next = &gcpro2; gcpro3.var = &varname3; gcpro3.nvars = 1; \ |
| 2334 | gcpro##4 .next = &gcpro##3; gcpro##4 .var = &var4; gcpro##4 .nvars = 1; \ | 2318 | gcpro4.next = &gcpro3; gcpro4.var = &varname4; gcpro4.nvars = 1; \ |
| 2335 | gcpro##4 .level = gcpro_level++; \ | 2319 | gcpro4.level = gcpro_level++; \ |
| 2336 | gcprolist = &gcpro##4; } | 2320 | gcprolist = &gcpro4; } |
| 2337 | 2321 | ||
| 2338 | #define GCPRO5_VAR(var1, var2, var3, var4, var5, gcpro) \ | 2322 | #define GCPRO5(varname1, varname2, varname3, varname4, varname5) \ |
| 2339 | {gcpro##1 .next = gcprolist; gcpro##1 .var = &var1; gcpro##1 .nvars = 1; \ | 2323 | {gcpro1.next = gcprolist; gcpro1.var = &varname1; gcpro1.nvars = 1; \ |
| 2340 | gcpro##1 .level = gcpro_level; \ | 2324 | gcpro1.level = gcpro_level; \ |
| 2341 | gcpro##2 .next = &gcpro##1; gcpro##2 .var = &var2; gcpro##2 .nvars = 1; \ | 2325 | gcpro2.next = &gcpro1; gcpro2.var = &varname2; gcpro2.nvars = 1; \ |
| 2342 | gcpro##3 .next = &gcpro##2; gcpro##3 .var = &var3; gcpro##3 .nvars = 1; \ | 2326 | gcpro3.next = &gcpro2; gcpro3.var = &varname3; gcpro3.nvars = 1; \ |
| 2343 | gcpro##4 .next = &gcpro##3; gcpro##4 .var = &var4; gcpro##4 .nvars = 1; \ | 2327 | gcpro4.next = &gcpro3; gcpro4.var = &varname4; gcpro4.nvars = 1; \ |
| 2344 | gcpro##5 .next = &gcpro##4; gcpro##5 .var = &var5; gcpro##5 .nvars = 1; \ | 2328 | gcpro5.next = &gcpro4; gcpro5.var = &varname5; gcpro5.nvars = 1; \ |
| 2345 | gcpro##5 .level = gcpro_level++; \ | 2329 | gcpro5.level = gcpro_level++; \ |
| 2346 | gcprolist = &gcpro##5; } | 2330 | gcprolist = &gcpro5; } |
| 2347 | 2331 | ||
| 2348 | #define GCPRO6_VAR(var1, var2, var3, var4, var5, var6, gcpro) \ | 2332 | #define GCPRO6(varname1, varname2, varname3, varname4, varname5, varname6) \ |
| 2349 | {gcpro##1 .next = gcprolist; gcpro##1 .var = &var1; gcpro##1 .nvars = 1; \ | 2333 | {gcpro1.next = gcprolist; gcpro1.var = &varname1; gcpro1.nvars = 1; \ |
| 2350 | gcpro##1 .level = gcpro_level; \ | 2334 | gcpro1.level = gcpro_level; \ |
| 2351 | gcpro##2 .next = &gcpro##1; gcpro##2 .var = &var2; gcpro##2 .nvars = 1; \ | 2335 | gcpro2.next = &gcpro1; gcpro2.var = &varname2; gcpro2.nvars = 1; \ |
| 2352 | gcpro##3 .next = &gcpro##2; gcpro##3 .var = &var3; gcpro##3 .nvars = 1; \ | 2336 | gcpro3.next = &gcpro2; gcpro3.var = &varname3; gcpro3.nvars = 1; \ |
| 2353 | gcpro##4 .next = &gcpro##3; gcpro##4 .var = &var4; gcpro##4 .nvars = 1; \ | 2337 | gcpro4.next = &gcpro3; gcpro4.var = &varname4; gcpro4.nvars = 1; \ |
| 2354 | gcpro##5 .next = &gcpro##4; gcpro##5 .var = &var5; gcpro##5 .nvars = 1; \ | 2338 | gcpro5.next = &gcpro4; gcpro5.var = &varname5; gcpro5.nvars = 1; \ |
| 2355 | gcpro##6 .next = &gcpro##5; gcpro##6 .var = &var6; gcpro##6 .nvars = 1; \ | 2339 | gcpro6.next = &gcpro5; gcpro6.var = &varname6; gcpro6.nvars = 1; \ |
| 2356 | gcpro##6 .level = gcpro_level++; \ | 2340 | gcpro6.level = gcpro_level++; \ |
| 2357 | gcprolist = &gcpro##6; } | 2341 | gcprolist = &gcpro6; } |
| 2358 | 2342 | ||
| 2359 | #define UNGCPRO_VAR(gcpro) \ | 2343 | #define UNGCPRO \ |
| 2360 | ((--gcpro_level != gcpro##1 .level) \ | 2344 | ((--gcpro_level != gcpro1.level) \ |
| 2361 | ? (abort (), 0) \ | 2345 | ? (abort (), 0) \ |
| 2362 | : ((gcprolist = gcpro##1 .next), 0)) | 2346 | : ((gcprolist = gcpro1.next), 0)) |
| 2363 | 2347 | ||
| 2364 | #endif /* DEBUG_GCPRO */ | 2348 | #endif /* DEBUG_GCPRO */ |
| 2365 | #endif /* GC_MARK_STACK != GC_MAKE_GCPROS_NOOPS */ | 2349 | #endif /* GC_MARK_STACK != GC_MAKE_GCPROS_NOOPS */ |
diff --git a/src/process.c b/src/process.c index ba3eeb81614..05c4be27550 100644 --- a/src/process.c +++ b/src/process.c | |||
| @@ -3474,7 +3474,7 @@ usage: (make-network-process &rest ARGS) */) | |||
| 3474 | 3474 | ||
| 3475 | { | 3475 | { |
| 3476 | /* Setup coding systems for communicating with the network stream. */ | 3476 | /* Setup coding systems for communicating with the network stream. */ |
| 3477 | struct gcpro inner_gcpro1; | 3477 | struct gcpro gcpro1; |
| 3478 | /* Qt denotes we have not yet called Ffind_operation_coding_system. */ | 3478 | /* Qt denotes we have not yet called Ffind_operation_coding_system. */ |
| 3479 | Lisp_Object coding_systems = Qt; | 3479 | Lisp_Object coding_systems = Qt; |
| 3480 | Lisp_Object fargs[5], val; | 3480 | Lisp_Object fargs[5], val; |
| @@ -3502,9 +3502,9 @@ usage: (make-network-process &rest ARGS) */) | |||
| 3502 | { | 3502 | { |
| 3503 | fargs[0] = Qopen_network_stream, fargs[1] = name, | 3503 | fargs[0] = Qopen_network_stream, fargs[1] = name, |
| 3504 | fargs[2] = buffer, fargs[3] = host, fargs[4] = service; | 3504 | fargs[2] = buffer, fargs[3] = host, fargs[4] = service; |
| 3505 | GCPRO1_VAR (proc, inner_gcpro); | 3505 | GCPRO1 (proc); |
| 3506 | coding_systems = Ffind_operation_coding_system (5, fargs); | 3506 | coding_systems = Ffind_operation_coding_system (5, fargs); |
| 3507 | UNGCPRO_VAR (inner_gcpro); | 3507 | UNGCPRO; |
| 3508 | } | 3508 | } |
| 3509 | if (CONSP (coding_systems)) | 3509 | if (CONSP (coding_systems)) |
| 3510 | val = XCAR (coding_systems); | 3510 | val = XCAR (coding_systems); |
| @@ -3535,9 +3535,9 @@ usage: (make-network-process &rest ARGS) */) | |||
| 3535 | { | 3535 | { |
| 3536 | fargs[0] = Qopen_network_stream, fargs[1] = name, | 3536 | fargs[0] = Qopen_network_stream, fargs[1] = name, |
| 3537 | fargs[2] = buffer, fargs[3] = host, fargs[4] = service; | 3537 | fargs[2] = buffer, fargs[3] = host, fargs[4] = service; |
| 3538 | GCPRO1_VAR (proc, inner_gcpro); | 3538 | GCPRO1 (proc); |
| 3539 | coding_systems = Ffind_operation_coding_system (5, fargs); | 3539 | coding_systems = Ffind_operation_coding_system (5, fargs); |
| 3540 | UNGCPRO_VAR (inner_gcpro); | 3540 | UNGCPRO; |
| 3541 | } | 3541 | } |
| 3542 | } | 3542 | } |
| 3543 | if (CONSP (coding_systems)) | 3543 | if (CONSP (coding_systems)) |
diff --git a/src/xfns.c b/src/xfns.c index c68149cce11..323b272e9f0 100644 --- a/src/xfns.c +++ b/src/xfns.c | |||
| @@ -3166,7 +3166,7 @@ This function is an internal primitive--use `make-frame' instead. */) | |||
| 3166 | to get the color reference counts right, so initialize them! */ | 3166 | to get the color reference counts right, so initialize them! */ |
| 3167 | { | 3167 | { |
| 3168 | Lisp_Object black; | 3168 | Lisp_Object black; |
| 3169 | struct gcpro inner_gcpro1; | 3169 | struct gcpro gcpro1; |
| 3170 | 3170 | ||
| 3171 | /* Function x_decode_color can signal an error. Make | 3171 | /* Function x_decode_color can signal an error. Make |
| 3172 | sure to initialize color slots so that we won't try | 3172 | sure to initialize color slots so that we won't try |
| @@ -3179,7 +3179,7 @@ This function is an internal primitive--use `make-frame' instead. */) | |||
| 3179 | f->output_data.x->mouse_pixel = -1; | 3179 | f->output_data.x->mouse_pixel = -1; |
| 3180 | 3180 | ||
| 3181 | black = build_string ("black"); | 3181 | black = build_string ("black"); |
| 3182 | GCPRO1_VAR (black, inner_gcpro); | 3182 | GCPRO1 (black); |
| 3183 | FRAME_FOREGROUND_PIXEL (f) | 3183 | FRAME_FOREGROUND_PIXEL (f) |
| 3184 | = x_decode_color (f, black, BLACK_PIX_DEFAULT (f)); | 3184 | = x_decode_color (f, black, BLACK_PIX_DEFAULT (f)); |
| 3185 | FRAME_BACKGROUND_PIXEL (f) | 3185 | FRAME_BACKGROUND_PIXEL (f) |
| @@ -3192,7 +3192,7 @@ This function is an internal primitive--use `make-frame' instead. */) | |||
| 3192 | = x_decode_color (f, black, BLACK_PIX_DEFAULT (f)); | 3192 | = x_decode_color (f, black, BLACK_PIX_DEFAULT (f)); |
| 3193 | f->output_data.x->mouse_pixel | 3193 | f->output_data.x->mouse_pixel |
| 3194 | = x_decode_color (f, black, BLACK_PIX_DEFAULT (f)); | 3194 | = x_decode_color (f, black, BLACK_PIX_DEFAULT (f)); |
| 3195 | UNGCPRO_VAR (inner_gcpro); | 3195 | UNGCPRO; |
| 3196 | } | 3196 | } |
| 3197 | 3197 | ||
| 3198 | /* Specify the parent under which to make this X window. */ | 3198 | /* Specify the parent under which to make this X window. */ |
| @@ -4620,7 +4620,7 @@ x_create_tip_frame (struct x_display_info *dpyinfo, | |||
| 4620 | to get the color reference counts right, so initialize them! */ | 4620 | to get the color reference counts right, so initialize them! */ |
| 4621 | { | 4621 | { |
| 4622 | Lisp_Object black; | 4622 | Lisp_Object black; |
| 4623 | struct gcpro inner_gcpro1; | 4623 | struct gcpro gcpro1; |
| 4624 | 4624 | ||
| 4625 | /* Function x_decode_color can signal an error. Make | 4625 | /* Function x_decode_color can signal an error. Make |
| 4626 | sure to initialize color slots so that we won't try | 4626 | sure to initialize color slots so that we won't try |
| @@ -4633,7 +4633,7 @@ x_create_tip_frame (struct x_display_info *dpyinfo, | |||
| 4633 | f->output_data.x->mouse_pixel = -1; | 4633 | f->output_data.x->mouse_pixel = -1; |
| 4634 | 4634 | ||
| 4635 | black = build_string ("black"); | 4635 | black = build_string ("black"); |
| 4636 | GCPRO1_VAR (black, inner_gcpro); | 4636 | GCPRO1 (black); |
| 4637 | FRAME_FOREGROUND_PIXEL (f) | 4637 | FRAME_FOREGROUND_PIXEL (f) |
| 4638 | = x_decode_color (f, black, BLACK_PIX_DEFAULT (f)); | 4638 | = x_decode_color (f, black, BLACK_PIX_DEFAULT (f)); |
| 4639 | FRAME_BACKGROUND_PIXEL (f) | 4639 | FRAME_BACKGROUND_PIXEL (f) |
| @@ -4646,7 +4646,7 @@ x_create_tip_frame (struct x_display_info *dpyinfo, | |||
| 4646 | = x_decode_color (f, black, BLACK_PIX_DEFAULT (f)); | 4646 | = x_decode_color (f, black, BLACK_PIX_DEFAULT (f)); |
| 4647 | f->output_data.x->mouse_pixel | 4647 | f->output_data.x->mouse_pixel |
| 4648 | = x_decode_color (f, black, BLACK_PIX_DEFAULT (f)); | 4648 | = x_decode_color (f, black, BLACK_PIX_DEFAULT (f)); |
| 4649 | UNGCPRO_VAR (inner_gcpro); | 4649 | UNGCPRO; |
| 4650 | } | 4650 | } |
| 4651 | 4651 | ||
| 4652 | /* Set the name; the functions to which we pass f expect the name to | 4652 | /* Set the name; the functions to which we pass f expect the name to |