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).
This commit is contained in:
parent
e95def75e4
commit
dbf312256d
6 changed files with 131 additions and 137 deletions
|
@ -1,3 +1,13 @@
|
|||
2011-11-28 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
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).
|
||||
|
||||
2011-11-28 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
|
||||
|
||||
* dispnew.c (scrolling_window): Truncate overlaps in copy destination
|
||||
|
|
18
src/dired.c
18
src/dired.c
|
@ -229,11 +229,11 @@ directory_files_internal (Lisp_Object directory, Lisp_Object full, Lisp_Object m
|
|||
int len;
|
||||
int wanted = 0;
|
||||
Lisp_Object name, finalname;
|
||||
struct gcpro inner_gcpro1, inner_gcpro2;
|
||||
struct gcpro gcpro1, gcpro2;
|
||||
|
||||
len = NAMLEN (dp);
|
||||
name = finalname = make_unibyte_string (dp->d_name, len);
|
||||
GCPRO2_VAR (finalname, name, inner_gcpro);
|
||||
GCPRO2 (finalname, name);
|
||||
|
||||
/* Note: DECODE_FILE can GC; it should protect its argument,
|
||||
though. */
|
||||
|
@ -289,23 +289,23 @@ directory_files_internal (Lisp_Object directory, Lisp_Object full, Lisp_Object m
|
|||
/* Construct an expanded filename for the directory entry.
|
||||
Use the decoded names for input to Ffile_attributes. */
|
||||
Lisp_Object decoded_fullname, fileattrs;
|
||||
struct gcpro innermost_gcpro1, innermost_gcpro2;
|
||||
struct gcpro gcpro1, gcpro2;
|
||||
|
||||
decoded_fullname = fileattrs = Qnil;
|
||||
GCPRO2_VAR (decoded_fullname, fileattrs, innermost_gcpro);
|
||||
GCPRO2 (decoded_fullname, fileattrs);
|
||||
|
||||
/* Both Fexpand_file_name and Ffile_attributes can GC. */
|
||||
decoded_fullname = Fexpand_file_name (name, directory);
|
||||
fileattrs = Ffile_attributes (decoded_fullname, id_format);
|
||||
|
||||
list = Fcons (Fcons (finalname, fileattrs), list);
|
||||
UNGCPRO_VAR (innermost_gcpro);
|
||||
UNGCPRO;
|
||||
}
|
||||
else
|
||||
list = Fcons (finalname, list);
|
||||
}
|
||||
|
||||
UNGCPRO_VAR (inner_gcpro);
|
||||
UNGCPRO;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -673,11 +673,11 @@ file_name_completion (Lisp_Object file, Lisp_Object dirname, int all_flag, int v
|
|||
if (!NILP (predicate))
|
||||
{
|
||||
Lisp_Object val;
|
||||
struct gcpro inner_gcpro1;
|
||||
struct gcpro gcpro1;
|
||||
|
||||
GCPRO1_VAR (name, inner_gcpro);
|
||||
GCPRO1 (name);
|
||||
val = call1 (predicate, name);
|
||||
UNGCPRO_VAR (inner_gcpro);
|
||||
UNGCPRO;
|
||||
|
||||
if (NILP (val))
|
||||
continue;
|
||||
|
|
|
@ -2998,7 +2998,7 @@ read_char (int commandflag, ptrdiff_t nmaps, Lisp_Object *maps,
|
|||
{
|
||||
Lisp_Object keys;
|
||||
int key_count, key_count_reset;
|
||||
struct gcpro inner_gcpro1;
|
||||
struct gcpro gcpro1;
|
||||
int count = SPECPDL_INDEX ();
|
||||
|
||||
/* Save the echo status. */
|
||||
|
@ -3026,7 +3026,7 @@ read_char (int commandflag, ptrdiff_t nmaps, Lisp_Object *maps,
|
|||
keys = Fcopy_sequence (this_command_keys);
|
||||
else
|
||||
keys = Qnil;
|
||||
GCPRO1_VAR (keys, inner_gcpro);
|
||||
GCPRO1 (keys);
|
||||
|
||||
/* Clear out this_command_keys. */
|
||||
this_command_key_count = 0;
|
||||
|
@ -3064,7 +3064,7 @@ read_char (int commandflag, ptrdiff_t nmaps, Lisp_Object *maps,
|
|||
if (saved_immediate_echo)
|
||||
echo_now ();
|
||||
|
||||
UNGCPRO_VAR (inner_gcpro);
|
||||
UNGCPRO;
|
||||
|
||||
/* The input method can return no events. */
|
||||
if (! CONSP (tem))
|
||||
|
@ -9053,9 +9053,9 @@ read_key_sequence (Lisp_Object *keybuf, int bufsize, Lisp_Object prompt,
|
|||
int junk;
|
||||
#endif
|
||||
|
||||
struct gcpro outer_gcpro1;
|
||||
struct gcpro gcpro1;
|
||||
|
||||
GCPRO1_VAR (fake_prefixed_keys, outer_gcpro);
|
||||
GCPRO1 (fake_prefixed_keys);
|
||||
raw_keybuf_count = 0;
|
||||
|
||||
last_nonmenu_event = Qnil;
|
||||
|
@ -9351,7 +9351,7 @@ read_key_sequence (Lisp_Object *keybuf, int bufsize, Lisp_Object prompt,
|
|||
if (EQ (key, Qt))
|
||||
{
|
||||
unbind_to (count, Qnil);
|
||||
UNGCPRO_VAR (outer_gcpro);
|
||||
UNGCPRO;
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
@ -10049,7 +10049,7 @@ read_key_sequence (Lisp_Object *keybuf, int bufsize, Lisp_Object prompt,
|
|||
add_command_key (keybuf[t]);
|
||||
}
|
||||
|
||||
UNGCPRO_VAR (outer_gcpro);
|
||||
UNGCPRO;
|
||||
return t;
|
||||
}
|
||||
|
||||
|
|
204
src/lisp.h
204
src/lisp.h
|
@ -2223,143 +2223,127 @@ struct gcpro
|
|||
|| GC_MARK_STACK == GC_MARK_STACK_CHECK_GCPROS)
|
||||
|
||||
|
||||
#define GCPRO1(var) \
|
||||
GCPRO1_VAR (var, gcpro)
|
||||
#define GCPRO2(var1, var2) \
|
||||
GCPRO2_VAR (var1, var2, gcpro)
|
||||
#define GCPRO3(var1, var2, var3) \
|
||||
GCPRO3_VAR (var1, var2, var3, gcpro)
|
||||
#define GCPRO4(var1, var2, var3, var4) \
|
||||
GCPRO4_VAR (var1, var2, var3, var4, gcpro)
|
||||
#define GCPRO5(var1, var2, var3, var4, var5) \
|
||||
GCPRO5_VAR (var1, var2, var3, var4, var5, gcpro)
|
||||
#define GCPRO6(var1, var2, var3, var4, var5, var6) \
|
||||
GCPRO6_VAR (var1, var2, var3, var4, var5, var6, gcpro)
|
||||
#define UNGCPRO UNGCPRO_VAR (gcpro)
|
||||
|
||||
#if GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS
|
||||
|
||||
/* Do something silly with gcproN vars just so gcc shuts up. */
|
||||
/* You get warnings from MIPSPro... */
|
||||
|
||||
#define GCPRO1_VAR(var, gcpro) ((void) gcpro##1)
|
||||
#define GCPRO2_VAR(var1, var2, gcpro) \
|
||||
((void) gcpro##2, (void) gcpro##1)
|
||||
#define GCPRO3_VAR(var1, var2, var3, gcpro) \
|
||||
((void) gcpro##3, (void) gcpro##2, (void) gcpro##1)
|
||||
#define GCPRO4_VAR(var1, var2, var3, var4, gcpro) \
|
||||
((void) gcpro##4, (void) gcpro##3, (void) gcpro##2, (void) gcpro##1)
|
||||
#define GCPRO5_VAR(var1, var2, var3, var4, var5, gcpro) \
|
||||
((void) gcpro##5, (void) gcpro##4, (void) gcpro##3, (void) gcpro##2, \
|
||||
(void) gcpro##1)
|
||||
#define GCPRO6_VAR(var1, var2, var3, var4, var5, var6, gcpro) \
|
||||
((void) gcpro##6, (void) gcpro##5, (void) gcpro##4, (void) gcpro##3, \
|
||||
(void) gcpro##2, (void) gcpro##1)
|
||||
#define UNGCPRO_VAR(gcpro) ((void) 0)
|
||||
#define GCPRO1(varname) ((void) gcpro1)
|
||||
#define GCPRO2(varname1, varname2) ((void) gcpro2, (void) gcpro1)
|
||||
#define GCPRO3(varname1, varname2, varname3) \
|
||||
((void) gcpro3, (void) gcpro2, (void) gcpro1)
|
||||
#define GCPRO4(varname1, varname2, varname3, varname4) \
|
||||
((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 */
|
||||
|
||||
#ifndef DEBUG_GCPRO
|
||||
|
||||
#define GCPRO1_VAR(var1, gcpro) \
|
||||
{gcpro##1 .next = gcprolist; gcpro##1 .var = &var1; gcpro##1 .nvars = 1; \
|
||||
gcprolist = &gcpro##1; }
|
||||
#define GCPRO1(varname) \
|
||||
{gcpro1.next = gcprolist; gcpro1.var = &varname; gcpro1.nvars = 1; \
|
||||
gcprolist = &gcpro1; }
|
||||
|
||||
#define GCPRO2_VAR(var1, var2, gcpro) \
|
||||
{gcpro##1 .next = gcprolist; gcpro##1 .var = &var1; gcpro##1 .nvars = 1; \
|
||||
gcpro##2 .next = &gcpro##1; gcpro##2 .var = &var2; gcpro##2 .nvars = 1; \
|
||||
gcprolist = &gcpro##2; }
|
||||
#define GCPRO2(varname1, varname2) \
|
||||
{gcpro1.next = gcprolist; gcpro1.var = &varname1; gcpro1.nvars = 1; \
|
||||
gcpro2.next = &gcpro1; gcpro2.var = &varname2; gcpro2.nvars = 1; \
|
||||
gcprolist = &gcpro2; }
|
||||
|
||||
#define GCPRO3_VAR(var1, var2, var3, gcpro) \
|
||||
{gcpro##1 .next = gcprolist; gcpro##1 .var = &var1; gcpro##1 .nvars = 1; \
|
||||
gcpro##2 .next = &gcpro##1; gcpro##2 .var = &var2; gcpro##2 .nvars = 1; \
|
||||
gcpro##3 .next = &gcpro##2; gcpro##3 .var = &var3; gcpro##3 .nvars = 1; \
|
||||
gcprolist = &gcpro##3; }
|
||||
#define GCPRO3(varname1, varname2, varname3) \
|
||||
{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; \
|
||||
gcprolist = &gcpro3; }
|
||||
|
||||
#define GCPRO4_VAR(var1, var2, var3, var4, gcpro) \
|
||||
{gcpro##1 .next = gcprolist; gcpro##1 .var = &var1; gcpro##1 .nvars = 1; \
|
||||
gcpro##2 .next = &gcpro##1; gcpro##2 .var = &var2; gcpro##2 .nvars = 1; \
|
||||
gcpro##3 .next = &gcpro##2; gcpro##3 .var = &var3; gcpro##3 .nvars = 1; \
|
||||
gcpro##4 .next = &gcpro##3; gcpro##4 .var = &var4; gcpro##4 .nvars = 1; \
|
||||
gcprolist = &gcpro##4; }
|
||||
#define GCPRO4(varname1, varname2, varname3, varname4) \
|
||||
{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; \
|
||||
gcprolist = &gcpro4; }
|
||||
|
||||
#define GCPRO5_VAR(var1, var2, var3, var4, var5, gcpro) \
|
||||
{gcpro##1 .next = gcprolist; gcpro##1 .var = &var1; gcpro##1 .nvars = 1; \
|
||||
gcpro##2 .next = &gcpro##1; gcpro##2 .var = &var2; gcpro##2 .nvars = 1; \
|
||||
gcpro##3 .next = &gcpro##2; gcpro##3 .var = &var3; gcpro##3 .nvars = 1; \
|
||||
gcpro##4 .next = &gcpro##3; gcpro##4 .var = &var4; gcpro##4 .nvars = 1; \
|
||||
gcpro##5 .next = &gcpro##4; gcpro##5 .var = &var5; gcpro##5 .nvars = 1; \
|
||||
gcprolist = &gcpro##5; }
|
||||
#define GCPRO5(varname1, varname2, varname3, varname4, varname5) \
|
||||
{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; \
|
||||
gcprolist = &gcpro5; }
|
||||
|
||||
#define GCPRO6_VAR(var1, var2, var3, var4, var5, var6, gcpro) \
|
||||
{gcpro##1 .next = gcprolist; gcpro##1 .var = &var1; gcpro##1 .nvars = 1; \
|
||||
gcpro##2 .next = &gcpro##1; gcpro##2 .var = &var2; gcpro##2 .nvars = 1; \
|
||||
gcpro##3 .next = &gcpro##2; gcpro##3 .var = &var3; gcpro##3 .nvars = 1; \
|
||||
gcpro##4 .next = &gcpro##3; gcpro##4 .var = &var4; gcpro##4 .nvars = 1; \
|
||||
gcpro##5 .next = &gcpro##4; gcpro##5 .var = &var5; gcpro##5 .nvars = 1; \
|
||||
gcpro##6 .next = &gcpro##5; gcpro##6 .var = &var6; gcpro##6 .nvars = 1; \
|
||||
gcprolist = &gcpro##6; }
|
||||
#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_VAR(gcpro) (gcprolist = gcpro##1 .next)
|
||||
#define UNGCPRO (gcprolist = gcpro1.next)
|
||||
|
||||
#else
|
||||
|
||||
extern int gcpro_level;
|
||||
|
||||
#define GCPRO1_VAR(var1, gcpro) \
|
||||
{gcpro##1 .next = gcprolist; gcpro##1 .var = &var1; gcpro##1 .nvars = 1; \
|
||||
gcpro##1 .level = gcpro_level++; \
|
||||
gcprolist = &gcpro##1; }
|
||||
#define GCPRO1(varname) \
|
||||
{gcpro1.next = gcprolist; gcpro1.var = &varname; gcpro1.nvars = 1; \
|
||||
gcpro1.level = gcpro_level++; \
|
||||
gcprolist = &gcpro1; }
|
||||
|
||||
#define GCPRO2_VAR(var1, var2, gcpro) \
|
||||
{gcpro##1 .next = gcprolist; gcpro##1 .var = &var1; gcpro##1 .nvars = 1; \
|
||||
gcpro##1 .level = gcpro_level; \
|
||||
gcpro##2 .next = &gcpro##1; gcpro##2 .var = &var2; gcpro##2 .nvars = 1; \
|
||||
gcpro##2 .level = gcpro_level++; \
|
||||
gcprolist = &gcpro##2; }
|
||||
#define GCPRO2(varname1, varname2) \
|
||||
{gcpro1.next = gcprolist; gcpro1.var = &varname1; gcpro1.nvars = 1; \
|
||||
gcpro1.level = gcpro_level; \
|
||||
gcpro2.next = &gcpro1; gcpro2.var = &varname2; gcpro2.nvars = 1; \
|
||||
gcpro2.level = gcpro_level++; \
|
||||
gcprolist = &gcpro2; }
|
||||
|
||||
#define GCPRO3_VAR(var1, var2, var3, gcpro) \
|
||||
{gcpro##1 .next = gcprolist; gcpro##1 .var = &var1; gcpro##1 .nvars = 1; \
|
||||
gcpro##1 .level = gcpro_level; \
|
||||
gcpro##2 .next = &gcpro##1; gcpro##2 .var = &var2; gcpro##2 .nvars = 1; \
|
||||
gcpro##3 .next = &gcpro##2; gcpro##3 .var = &var3; gcpro##3 .nvars = 1; \
|
||||
gcpro##3 .level = gcpro_level++; \
|
||||
gcprolist = &gcpro##3; }
|
||||
#define GCPRO3(varname1, varname2, varname3) \
|
||||
{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; \
|
||||
gcpro3.level = gcpro_level++; \
|
||||
gcprolist = &gcpro3; }
|
||||
|
||||
#define GCPRO4_VAR(var1, var2, var3, var4, gcpro) \
|
||||
{gcpro##1 .next = gcprolist; gcpro##1 .var = &var1; gcpro##1 .nvars = 1; \
|
||||
gcpro##1 .level = gcpro_level; \
|
||||
gcpro##2 .next = &gcpro##1; gcpro##2 .var = &var2; gcpro##2 .nvars = 1; \
|
||||
gcpro##3 .next = &gcpro##2; gcpro##3 .var = &var3; gcpro##3 .nvars = 1; \
|
||||
gcpro##4 .next = &gcpro##3; gcpro##4 .var = &var4; gcpro##4 .nvars = 1; \
|
||||
gcpro##4 .level = gcpro_level++; \
|
||||
gcprolist = &gcpro##4; }
|
||||
#define GCPRO4(varname1, varname2, varname3, varname4) \
|
||||
{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; \
|
||||
gcpro4.level = gcpro_level++; \
|
||||
gcprolist = &gcpro4; }
|
||||
|
||||
#define GCPRO5_VAR(var1, var2, var3, var4, var5, gcpro) \
|
||||
{gcpro##1 .next = gcprolist; gcpro##1 .var = &var1; gcpro##1 .nvars = 1; \
|
||||
gcpro##1 .level = gcpro_level; \
|
||||
gcpro##2 .next = &gcpro##1; gcpro##2 .var = &var2; gcpro##2 .nvars = 1; \
|
||||
gcpro##3 .next = &gcpro##2; gcpro##3 .var = &var3; gcpro##3 .nvars = 1; \
|
||||
gcpro##4 .next = &gcpro##3; gcpro##4 .var = &var4; gcpro##4 .nvars = 1; \
|
||||
gcpro##5 .next = &gcpro##4; gcpro##5 .var = &var5; gcpro##5 .nvars = 1; \
|
||||
gcpro##5 .level = gcpro_level++; \
|
||||
gcprolist = &gcpro##5; }
|
||||
#define GCPRO5(varname1, varname2, varname3, varname4, varname5) \
|
||||
{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; \
|
||||
gcpro5.level = gcpro_level++; \
|
||||
gcprolist = &gcpro5; }
|
||||
|
||||
#define GCPRO6_VAR(var1, var2, var3, var4, var5, var6, gcpro) \
|
||||
{gcpro##1 .next = gcprolist; gcpro##1 .var = &var1; gcpro##1 .nvars = 1; \
|
||||
gcpro##1 .level = gcpro_level; \
|
||||
gcpro##2 .next = &gcpro##1; gcpro##2 .var = &var2; gcpro##2 .nvars = 1; \
|
||||
gcpro##3 .next = &gcpro##2; gcpro##3 .var = &var3; gcpro##3 .nvars = 1; \
|
||||
gcpro##4 .next = &gcpro##3; gcpro##4 .var = &var4; gcpro##4 .nvars = 1; \
|
||||
gcpro##5 .next = &gcpro##4; gcpro##5 .var = &var5; gcpro##5 .nvars = 1; \
|
||||
gcpro##6 .next = &gcpro##5; gcpro##6 .var = &var6; gcpro##6 .nvars = 1; \
|
||||
gcpro##6 .level = gcpro_level++; \
|
||||
gcprolist = &gcpro##6; }
|
||||
#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_VAR(gcpro) \
|
||||
((--gcpro_level != gcpro##1 .level) \
|
||||
? (abort (), 0) \
|
||||
: ((gcprolist = gcpro##1 .next), 0))
|
||||
#define UNGCPRO \
|
||||
((--gcpro_level != gcpro1.level) \
|
||||
? (abort (), 0) \
|
||||
: ((gcprolist = gcpro1.next), 0))
|
||||
|
||||
#endif /* DEBUG_GCPRO */
|
||||
#endif /* GC_MARK_STACK != GC_MAKE_GCPROS_NOOPS */
|
||||
|
|
|
@ -3474,7 +3474,7 @@ usage: (make-network-process &rest ARGS) */)
|
|||
|
||||
{
|
||||
/* Setup coding systems for communicating with the network stream. */
|
||||
struct gcpro inner_gcpro1;
|
||||
struct gcpro gcpro1;
|
||||
/* Qt denotes we have not yet called Ffind_operation_coding_system. */
|
||||
Lisp_Object coding_systems = Qt;
|
||||
Lisp_Object fargs[5], val;
|
||||
|
@ -3502,9 +3502,9 @@ usage: (make-network-process &rest ARGS) */)
|
|||
{
|
||||
fargs[0] = Qopen_network_stream, fargs[1] = name,
|
||||
fargs[2] = buffer, fargs[3] = host, fargs[4] = service;
|
||||
GCPRO1_VAR (proc, inner_gcpro);
|
||||
GCPRO1 (proc);
|
||||
coding_systems = Ffind_operation_coding_system (5, fargs);
|
||||
UNGCPRO_VAR (inner_gcpro);
|
||||
UNGCPRO;
|
||||
}
|
||||
if (CONSP (coding_systems))
|
||||
val = XCAR (coding_systems);
|
||||
|
@ -3535,9 +3535,9 @@ usage: (make-network-process &rest ARGS) */)
|
|||
{
|
||||
fargs[0] = Qopen_network_stream, fargs[1] = name,
|
||||
fargs[2] = buffer, fargs[3] = host, fargs[4] = service;
|
||||
GCPRO1_VAR (proc, inner_gcpro);
|
||||
GCPRO1 (proc);
|
||||
coding_systems = Ffind_operation_coding_system (5, fargs);
|
||||
UNGCPRO_VAR (inner_gcpro);
|
||||
UNGCPRO;
|
||||
}
|
||||
}
|
||||
if (CONSP (coding_systems))
|
||||
|
|
12
src/xfns.c
12
src/xfns.c
|
@ -3166,7 +3166,7 @@ This function is an internal primitive--use `make-frame' instead. */)
|
|||
to get the color reference counts right, so initialize them! */
|
||||
{
|
||||
Lisp_Object black;
|
||||
struct gcpro inner_gcpro1;
|
||||
struct gcpro gcpro1;
|
||||
|
||||
/* Function x_decode_color can signal an error. Make
|
||||
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. */)
|
|||
f->output_data.x->mouse_pixel = -1;
|
||||
|
||||
black = build_string ("black");
|
||||
GCPRO1_VAR (black, inner_gcpro);
|
||||
GCPRO1 (black);
|
||||
FRAME_FOREGROUND_PIXEL (f)
|
||||
= x_decode_color (f, black, BLACK_PIX_DEFAULT (f));
|
||||
FRAME_BACKGROUND_PIXEL (f)
|
||||
|
@ -3192,7 +3192,7 @@ This function is an internal primitive--use `make-frame' instead. */)
|
|||
= x_decode_color (f, black, BLACK_PIX_DEFAULT (f));
|
||||
f->output_data.x->mouse_pixel
|
||||
= x_decode_color (f, black, BLACK_PIX_DEFAULT (f));
|
||||
UNGCPRO_VAR (inner_gcpro);
|
||||
UNGCPRO;
|
||||
}
|
||||
|
||||
/* Specify the parent under which to make this X window. */
|
||||
|
@ -4620,7 +4620,7 @@ x_create_tip_frame (struct x_display_info *dpyinfo,
|
|||
to get the color reference counts right, so initialize them! */
|
||||
{
|
||||
Lisp_Object black;
|
||||
struct gcpro inner_gcpro1;
|
||||
struct gcpro gcpro1;
|
||||
|
||||
/* Function x_decode_color can signal an error. Make
|
||||
sure to initialize color slots so that we won't try
|
||||
|
@ -4633,7 +4633,7 @@ x_create_tip_frame (struct x_display_info *dpyinfo,
|
|||
f->output_data.x->mouse_pixel = -1;
|
||||
|
||||
black = build_string ("black");
|
||||
GCPRO1_VAR (black, inner_gcpro);
|
||||
GCPRO1 (black);
|
||||
FRAME_FOREGROUND_PIXEL (f)
|
||||
= x_decode_color (f, black, BLACK_PIX_DEFAULT (f));
|
||||
FRAME_BACKGROUND_PIXEL (f)
|
||||
|
@ -4646,7 +4646,7 @@ x_create_tip_frame (struct x_display_info *dpyinfo,
|
|||
= x_decode_color (f, black, BLACK_PIX_DEFAULT (f));
|
||||
f->output_data.x->mouse_pixel
|
||||
= x_decode_color (f, black, BLACK_PIX_DEFAULT (f));
|
||||
UNGCPRO_VAR (inner_gcpro);
|
||||
UNGCPRO;
|
||||
}
|
||||
|
||||
/* Set the name; the functions to which we pass f expect the name to
|
||||
|
|
Loading…
Add table
Reference in a new issue