diff options
| author | Dmitry Antipov | 2014-09-11 13:14:45 +0400 |
|---|---|---|
| committer | Dmitry Antipov | 2014-09-11 13:14:45 +0400 |
| commit | 5d27b6b6689b610096ecf5ca136eaa89e38ce6b6 (patch) | |
| tree | d8081f4b4082fb179e05bfad8be3d8ea1f7d7aca | |
| parent | 6e5fd4936d0d56abe13352a6b80446e62fab040a (diff) | |
| download | emacs-5d27b6b6689b610096ecf5ca136eaa89e38ce6b6.tar.gz emacs-5d27b6b6689b610096ecf5ca136eaa89e38ce6b6.zip | |
More debugging aids around GCPROs.
* lisp.h (struct gcpro) [DEBUG_GCPRO]: Add extra members.
(GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6, GCPRO7):
Minor restyle. If DEBUG_GCPRO, initialize extra fields.
| -rw-r--r-- | src/ChangeLog | 5 | ||||
| -rw-r--r-- | src/lisp.h | 252 |
2 files changed, 150 insertions, 107 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 6f76ddd0cda..05ec1514f42 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -3,6 +3,11 @@ | |||
| 3 | * lisp.h (make_local_string): Nitpick indent. | 3 | * lisp.h (make_local_string): Nitpick indent. |
| 4 | * print.c (Fprin1_to_string): Remove unused GCPROs. | 4 | * print.c (Fprin1_to_string): Remove unused GCPROs. |
| 5 | 5 | ||
| 6 | More debugging aids around GCPROs. | ||
| 7 | * lisp.h (struct gcpro) [DEBUG_GCPRO]: Add extra members. | ||
| 8 | (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6, GCPRO7): | ||
| 9 | Minor restyle. If DEBUG_GCPRO, initialize extra fields. | ||
| 10 | |||
| 6 | 2014-09-11 Paul Eggert <eggert@cs.ucla.edu> | 11 | 2014-09-11 Paul Eggert <eggert@cs.ucla.edu> |
| 7 | 12 | ||
| 8 | Pacify --enable-gcc-warnings when no window system is used. | 13 | Pacify --enable-gcc-warnings when no window system is used. |
diff --git a/src/lisp.h b/src/lisp.h index 9cfcb244891..ba3c812f5d8 100644 --- a/src/lisp.h +++ b/src/lisp.h | |||
| @@ -3016,6 +3016,16 @@ struct gcpro | |||
| 3016 | ptrdiff_t nvars; | 3016 | ptrdiff_t nvars; |
| 3017 | 3017 | ||
| 3018 | #ifdef DEBUG_GCPRO | 3018 | #ifdef DEBUG_GCPRO |
| 3019 | /* File name where this record is used. */ | ||
| 3020 | const char *name; | ||
| 3021 | |||
| 3022 | /* Line number in this file. */ | ||
| 3023 | int lineno; | ||
| 3024 | |||
| 3025 | /* Index in the local chain of records. */ | ||
| 3026 | int idx; | ||
| 3027 | |||
| 3028 | /* Nesting level. */ | ||
| 3019 | int level; | 3029 | int level; |
| 3020 | #endif | 3030 | #endif |
| 3021 | }; | 3031 | }; |
| @@ -3071,122 +3081,150 @@ struct gcpro | |||
| 3071 | 3081 | ||
| 3072 | #ifndef DEBUG_GCPRO | 3082 | #ifndef DEBUG_GCPRO |
| 3073 | 3083 | ||
| 3074 | #define GCPRO1(varname) \ | 3084 | #define GCPRO1(a) \ |
| 3075 | {gcpro1.next = gcprolist; gcpro1.var = &varname; gcpro1.nvars = 1; \ | 3085 | { gcpro1.next = gcprolist; gcpro1.var = &(a); gcpro1.nvars = 1; \ |
| 3076 | gcprolist = &gcpro1; } | 3086 | gcprolist = &gcpro1; } |
| 3077 | 3087 | ||
| 3078 | #define GCPRO2(varname1, varname2) \ | 3088 | #define GCPRO2(a, b) \ |
| 3079 | {gcpro1.next = gcprolist; gcpro1.var = &varname1; gcpro1.nvars = 1; \ | 3089 | { gcpro1.next = gcprolist; gcpro1.var = &(a); gcpro1.nvars = 1; \ |
| 3080 | gcpro2.next = &gcpro1; gcpro2.var = &varname2; gcpro2.nvars = 1; \ | 3090 | gcpro2.next = &gcpro1; gcpro2.var = &(b); gcpro2.nvars = 1; \ |
| 3081 | gcprolist = &gcpro2; } | 3091 | gcprolist = &gcpro2; } |
| 3082 | 3092 | ||
| 3083 | #define GCPRO3(varname1, varname2, varname3) \ | 3093 | #define GCPRO3(a, b, c) \ |
| 3084 | {gcpro1.next = gcprolist; gcpro1.var = &varname1; gcpro1.nvars = 1; \ | 3094 | { gcpro1.next = gcprolist; gcpro1.var = &(a); gcpro1.nvars = 1; \ |
| 3085 | gcpro2.next = &gcpro1; gcpro2.var = &varname2; gcpro2.nvars = 1; \ | 3095 | gcpro2.next = &gcpro1; gcpro2.var = &(b); gcpro2.nvars = 1; \ |
| 3086 | gcpro3.next = &gcpro2; gcpro3.var = &varname3; gcpro3.nvars = 1; \ | 3096 | gcpro3.next = &gcpro2; gcpro3.var = &(c); gcpro3.nvars = 1; \ |
| 3087 | gcprolist = &gcpro3; } | 3097 | gcprolist = &gcpro3; } |
| 3098 | |||
| 3099 | #define GCPRO4(a, b, c, d) \ | ||
| 3100 | { gcpro1.next = gcprolist; gcpro1.var = &(a); gcpro1.nvars = 1; \ | ||
| 3101 | gcpro2.next = &gcpro1; gcpro2.var = &(b); gcpro2.nvars = 1; \ | ||
| 3102 | gcpro3.next = &gcpro2; gcpro3.var = &(c); gcpro3.nvars = 1; \ | ||
| 3103 | gcpro4.next = &gcpro3; gcpro4.var = &(d); gcpro4.nvars = 1; \ | ||
| 3104 | gcprolist = &gcpro4; } | ||
| 3105 | |||
| 3106 | #define GCPRO5(a, b, c, d, e) \ | ||
| 3107 | { gcpro1.next = gcprolist; gcpro1.var = &(a); gcpro1.nvars = 1; \ | ||
| 3108 | gcpro2.next = &gcpro1; gcpro2.var = &(b); gcpro2.nvars = 1; \ | ||
| 3109 | gcpro3.next = &gcpro2; gcpro3.var = &(c); gcpro3.nvars = 1; \ | ||
| 3110 | gcpro4.next = &gcpro3; gcpro4.var = &(d); gcpro4.nvars = 1; \ | ||
| 3111 | gcpro5.next = &gcpro4; gcpro5.var = &(e); gcpro5.nvars = 1; \ | ||
| 3112 | gcprolist = &gcpro5; } | ||
| 3113 | |||
| 3114 | #define GCPRO6(a, b, c, d, e, f) \ | ||
| 3115 | { gcpro1.next = gcprolist; gcpro1.var = &(a); gcpro1.nvars = 1; \ | ||
| 3116 | gcpro2.next = &gcpro1; gcpro2.var = &(b); gcpro2.nvars = 1; \ | ||
| 3117 | gcpro3.next = &gcpro2; gcpro3.var = &(c); gcpro3.nvars = 1; \ | ||
| 3118 | gcpro4.next = &gcpro3; gcpro4.var = &(d); gcpro4.nvars = 1; \ | ||
| 3119 | gcpro5.next = &gcpro4; gcpro5.var = &(e); gcpro5.nvars = 1; \ | ||
| 3120 | gcpro6.next = &gcpro5; gcpro6.var = &(f); gcpro6.nvars = 1; \ | ||
| 3121 | gcprolist = &gcpro6; } | ||
| 3088 | 3122 | ||
| 3089 | #define GCPRO4(varname1, varname2, varname3, varname4) \ | 3123 | #define GCPRO7(a, b, c, d, e, f, g) \ |
| 3090 | {gcpro1.next = gcprolist; gcpro1.var = &varname1; gcpro1.nvars = 1; \ | 3124 | { gcpro1.next = gcprolist; gcpro1.var = &(a); gcpro1.nvars = 1; \ |
| 3091 | gcpro2.next = &gcpro1; gcpro2.var = &varname2; gcpro2.nvars = 1; \ | 3125 | gcpro2.next = &gcpro1; gcpro2.var = &(b); gcpro2.nvars = 1; \ |
| 3092 | gcpro3.next = &gcpro2; gcpro3.var = &varname3; gcpro3.nvars = 1; \ | 3126 | gcpro3.next = &gcpro2; gcpro3.var = &(c); gcpro3.nvars = 1; \ |
| 3093 | gcpro4.next = &gcpro3; gcpro4.var = &varname4; gcpro4.nvars = 1; \ | 3127 | gcpro4.next = &gcpro3; gcpro4.var = &(d); gcpro4.nvars = 1; \ |
| 3094 | gcprolist = &gcpro4; } | 3128 | gcpro5.next = &gcpro4; gcpro5.var = &(e); gcpro5.nvars = 1; \ |
| 3095 | 3129 | gcpro6.next = &gcpro5; gcpro6.var = &(f); gcpro6.nvars = 1; \ | |
| 3096 | #define GCPRO5(varname1, varname2, varname3, varname4, varname5) \ | 3130 | gcpro7.next = &gcpro6; gcpro7.var = &(g); gcpro7.nvars = 1; \ |
| 3097 | {gcpro1.next = gcprolist; gcpro1.var = &varname1; gcpro1.nvars = 1; \ | 3131 | gcprolist = &gcpro7; } |
| 3098 | gcpro2.next = &gcpro1; gcpro2.var = &varname2; gcpro2.nvars = 1; \ | ||
| 3099 | gcpro3.next = &gcpro2; gcpro3.var = &varname3; gcpro3.nvars = 1; \ | ||
| 3100 | gcpro4.next = &gcpro3; gcpro4.var = &varname4; gcpro4.nvars = 1; \ | ||
| 3101 | gcpro5.next = &gcpro4; gcpro5.var = &varname5; gcpro5.nvars = 1; \ | ||
| 3102 | gcprolist = &gcpro5; } | ||
| 3103 | |||
| 3104 | #define GCPRO6(varname1, varname2, varname3, varname4, varname5, varname6) \ | ||
| 3105 | {gcpro1.next = gcprolist; gcpro1.var = &varname1; gcpro1.nvars = 1; \ | ||
| 3106 | gcpro2.next = &gcpro1; gcpro2.var = &varname2; gcpro2.nvars = 1; \ | ||
| 3107 | gcpro3.next = &gcpro2; gcpro3.var = &varname3; gcpro3.nvars = 1; \ | ||
| 3108 | gcpro4.next = &gcpro3; gcpro4.var = &varname4; gcpro4.nvars = 1; \ | ||
| 3109 | gcpro5.next = &gcpro4; gcpro5.var = &varname5; gcpro5.nvars = 1; \ | ||
| 3110 | gcpro6.next = &gcpro5; gcpro6.var = &varname6; gcpro6.nvars = 1; \ | ||
| 3111 | gcprolist = &gcpro6; } | ||
| 3112 | |||
| 3113 | #define GCPRO7(a, b, c, d, e, f, g) \ | ||
| 3114 | {gcpro1.next = gcprolist; gcpro1.var = &(a); gcpro1.nvars = 1; \ | ||
| 3115 | gcpro2.next = &gcpro1; gcpro2.var = &(b); gcpro2.nvars = 1; \ | ||
| 3116 | gcpro3.next = &gcpro2; gcpro3.var = &(c); gcpro3.nvars = 1; \ | ||
| 3117 | gcpro4.next = &gcpro3; gcpro4.var = &(d); gcpro4.nvars = 1; \ | ||
| 3118 | gcpro5.next = &gcpro4; gcpro5.var = &(e); gcpro5.nvars = 1; \ | ||
| 3119 | gcpro6.next = &gcpro5; gcpro6.var = &(f); gcpro6.nvars = 1; \ | ||
| 3120 | gcpro7.next = &gcpro6; gcpro7.var = &(g); gcpro7.nvars = 1; \ | ||
| 3121 | gcprolist = &gcpro7; } | ||
| 3122 | 3132 | ||
| 3123 | #define UNGCPRO (gcprolist = gcpro1.next) | 3133 | #define UNGCPRO (gcprolist = gcpro1.next) |
| 3124 | 3134 | ||
| 3125 | #else | 3135 | #else /* !DEBUG_GCPRO */ |
| 3126 | 3136 | ||
| 3127 | extern int gcpro_level; | 3137 | extern int gcpro_level; |
| 3128 | 3138 | ||
| 3129 | #define GCPRO1(varname) \ | 3139 | #define GCPRO1(a) \ |
| 3130 | {gcpro1.next = gcprolist; gcpro1.var = &varname; gcpro1.nvars = 1; \ | 3140 | { gcpro1.next = gcprolist; gcpro1.var = &(a); gcpro1.nvars = 1; \ |
| 3131 | gcpro1.level = gcpro_level++; \ | 3141 | gcpro1.name = __FILE__; gcpro1.lineno = __LINE__; gcpro1.idx = 1; \ |
| 3132 | gcprolist = &gcpro1; } | 3142 | gcpro1.level = gcpro_level++; \ |
| 3133 | 3143 | gcprolist = &gcpro1; } | |
| 3134 | #define GCPRO2(varname1, varname2) \ | 3144 | |
| 3135 | {gcpro1.next = gcprolist; gcpro1.var = &varname1; gcpro1.nvars = 1; \ | 3145 | #define GCPRO2(a, b) \ |
| 3136 | gcpro1.level = gcpro_level; \ | 3146 | { gcpro1.next = gcprolist; gcpro1.var = &(a); gcpro1.nvars = 1; \ |
| 3137 | gcpro2.next = &gcpro1; gcpro2.var = &varname2; gcpro2.nvars = 1; \ | 3147 | gcpro1.name = __FILE__; gcpro1.lineno = __LINE__; gcpro1.idx = 1; \ |
| 3138 | gcpro2.level = gcpro_level++; \ | 3148 | gcpro1.level = gcpro_level; \ |
| 3139 | gcprolist = &gcpro2; } | 3149 | gcpro2.next = &gcpro1; gcpro2.var = &(b); gcpro2.nvars = 1; \ |
| 3140 | 3150 | gcpro2.name = __FILE__; gcpro2.lineno = __LINE__; gcpro2.idx = 2; \ | |
| 3141 | #define GCPRO3(varname1, varname2, varname3) \ | 3151 | gcpro2.level = gcpro_level++; \ |
| 3142 | {gcpro1.next = gcprolist; gcpro1.var = &varname1; gcpro1.nvars = 1; \ | 3152 | gcprolist = &gcpro2; } |
| 3143 | gcpro1.level = gcpro_level; \ | 3153 | |
| 3144 | gcpro2.next = &gcpro1; gcpro2.var = &varname2; gcpro2.nvars = 1; \ | 3154 | #define GCPRO3(a, b, c) \ |
| 3145 | gcpro3.next = &gcpro2; gcpro3.var = &varname3; gcpro3.nvars = 1; \ | 3155 | { gcpro1.next = gcprolist; gcpro1.var = &(a); gcpro1.nvars = 1; \ |
| 3146 | gcpro3.level = gcpro_level++; \ | 3156 | gcpro1.name = __FILE__; gcpro1.lineno = __LINE__; gcpro1.idx = 1; \ |
| 3147 | gcprolist = &gcpro3; } | 3157 | gcpro1.level = gcpro_level; \ |
| 3148 | 3158 | gcpro2.next = &gcpro1; gcpro2.var = &(b); gcpro2.nvars = 1; \ | |
| 3149 | #define GCPRO4(varname1, varname2, varname3, varname4) \ | 3159 | gcpro2.name = __FILE__; gcpro2.lineno = __LINE__; gcpro2.idx = 2; \ |
| 3150 | {gcpro1.next = gcprolist; gcpro1.var = &varname1; gcpro1.nvars = 1; \ | 3160 | gcpro3.next = &gcpro2; gcpro3.var = &(c); gcpro3.nvars = 1; \ |
| 3151 | gcpro1.level = gcpro_level; \ | 3161 | gcpro3.name = __FILE__; gcpro3.lineno = __LINE__; gcpro3.idx = 3; \ |
| 3152 | gcpro2.next = &gcpro1; gcpro2.var = &varname2; gcpro2.nvars = 1; \ | 3162 | gcpro3.level = gcpro_level++; \ |
| 3153 | gcpro3.next = &gcpro2; gcpro3.var = &varname3; gcpro3.nvars = 1; \ | 3163 | gcprolist = &gcpro3; } |
| 3154 | gcpro4.next = &gcpro3; gcpro4.var = &varname4; gcpro4.nvars = 1; \ | 3164 | |
| 3155 | gcpro4.level = gcpro_level++; \ | 3165 | #define GCPRO4(a, b, c, d) \ |
| 3156 | gcprolist = &gcpro4; } | 3166 | { gcpro1.next = gcprolist; gcpro1.var = &(a); gcpro1.nvars = 1; \ |
| 3157 | 3167 | gcpro1.name = __FILE__; gcpro1.lineno = __LINE__; gcpro1.idx = 1; \ | |
| 3158 | #define GCPRO5(varname1, varname2, varname3, varname4, varname5) \ | 3168 | gcpro1.level = gcpro_level; \ |
| 3159 | {gcpro1.next = gcprolist; gcpro1.var = &varname1; gcpro1.nvars = 1; \ | 3169 | gcpro2.next = &gcpro1; gcpro2.var = &(b); gcpro2.nvars = 1; \ |
| 3160 | gcpro1.level = gcpro_level; \ | 3170 | gcpro2.name = __FILE__; gcpro2.lineno = __LINE__; gcpro2.idx = 2; \ |
| 3161 | gcpro2.next = &gcpro1; gcpro2.var = &varname2; gcpro2.nvars = 1; \ | 3171 | gcpro3.next = &gcpro2; gcpro3.var = &(c); gcpro3.nvars = 1; \ |
| 3162 | gcpro3.next = &gcpro2; gcpro3.var = &varname3; gcpro3.nvars = 1; \ | 3172 | gcpro3.name = __FILE__; gcpro3.lineno = __LINE__; gcpro3.idx = 3; \ |
| 3163 | gcpro4.next = &gcpro3; gcpro4.var = &varname4; gcpro4.nvars = 1; \ | 3173 | gcpro4.next = &gcpro3; gcpro4.var = &(d); gcpro4.nvars = 1; \ |
| 3164 | gcpro5.next = &gcpro4; gcpro5.var = &varname5; gcpro5.nvars = 1; \ | 3174 | gcpro4.name = __FILE__; gcpro4.lineno = __LINE__; gcpro4.idx = 4; \ |
| 3165 | gcpro5.level = gcpro_level++; \ | 3175 | gcpro4.level = gcpro_level++; \ |
| 3166 | gcprolist = &gcpro5; } | 3176 | gcprolist = &gcpro4; } |
| 3167 | 3177 | ||
| 3168 | #define GCPRO6(varname1, varname2, varname3, varname4, varname5, varname6) \ | 3178 | #define GCPRO5(a, b, c, d, e) \ |
| 3169 | {gcpro1.next = gcprolist; gcpro1.var = &varname1; gcpro1.nvars = 1; \ | 3179 | { gcpro1.next = gcprolist; gcpro1.var = &(a); gcpro1.nvars = 1; \ |
| 3170 | gcpro1.level = gcpro_level; \ | 3180 | gcpro1.name = __FILE__; gcpro1.lineno = __LINE__; gcpro1.idx = 1; \ |
| 3171 | gcpro2.next = &gcpro1; gcpro2.var = &varname2; gcpro2.nvars = 1; \ | 3181 | gcpro1.level = gcpro_level; \ |
| 3172 | gcpro3.next = &gcpro2; gcpro3.var = &varname3; gcpro3.nvars = 1; \ | 3182 | gcpro2.next = &gcpro1; gcpro2.var = &(b); gcpro2.nvars = 1; \ |
| 3173 | gcpro4.next = &gcpro3; gcpro4.var = &varname4; gcpro4.nvars = 1; \ | 3183 | gcpro2.name = __FILE__; gcpro2.lineno = __LINE__; gcpro2.idx = 2; \ |
| 3174 | gcpro5.next = &gcpro4; gcpro5.var = &varname5; gcpro5.nvars = 1; \ | 3184 | gcpro3.next = &gcpro2; gcpro3.var = &(c); gcpro3.nvars = 1; \ |
| 3175 | gcpro6.next = &gcpro5; gcpro6.var = &varname6; gcpro6.nvars = 1; \ | 3185 | gcpro3.name = __FILE__; gcpro3.lineno = __LINE__; gcpro3.idx = 3; \ |
| 3176 | gcpro6.level = gcpro_level++; \ | 3186 | gcpro4.next = &gcpro3; gcpro4.var = &(d); gcpro4.nvars = 1; \ |
| 3177 | gcprolist = &gcpro6; } | 3187 | gcpro4.name = __FILE__; gcpro4.lineno = __LINE__; gcpro4.idx = 4; \ |
| 3188 | gcpro5.next = &gcpro4; gcpro5.var = &(e); gcpro5.nvars = 1; \ | ||
| 3189 | gcpro5.name = __FILE__; gcpro5.lineno = __LINE__; gcpro5.idx = 5; \ | ||
| 3190 | gcpro5.level = gcpro_level++; \ | ||
| 3191 | gcprolist = &gcpro5; } | ||
| 3192 | |||
| 3193 | #define GCPRO6(a, b, c, d, e, f) \ | ||
| 3194 | { gcpro1.next = gcprolist; gcpro1.var = &(a); gcpro1.nvars = 1; \ | ||
| 3195 | gcpro1.name = __FILE__; gcpro1.lineno = __LINE__; gcpro1.idx = 1; \ | ||
| 3196 | gcpro1.level = gcpro_level; \ | ||
| 3197 | gcpro2.next = &gcpro1; gcpro2.var = &(b); gcpro2.nvars = 1; \ | ||
| 3198 | gcpro2.name = __FILE__; gcpro2.lineno = __LINE__; gcpro2.idx = 2; \ | ||
| 3199 | gcpro3.next = &gcpro2; gcpro3.var = &(c); gcpro3.nvars = 1; \ | ||
| 3200 | gcpro3.name = __FILE__; gcpro3.lineno = __LINE__; gcpro3.idx = 3; \ | ||
| 3201 | gcpro4.next = &gcpro3; gcpro4.var = &(d); gcpro4.nvars = 1; \ | ||
| 3202 | gcpro4.name = __FILE__; gcpro4.lineno = __LINE__; gcpro4.idx = 4; \ | ||
| 3203 | gcpro5.next = &gcpro4; gcpro5.var = &(e); gcpro5.nvars = 1; \ | ||
| 3204 | gcpro5.name = __FILE__; gcpro5.lineno = __LINE__; gcpro5.idx = 5; \ | ||
| 3205 | gcpro6.next = &gcpro5; gcpro6.var = &(f); gcpro6.nvars = 1; \ | ||
| 3206 | gcpro6.name = __FILE__; gcpro6.lineno = __LINE__; gcpro6.idx = 6; \ | ||
| 3207 | gcpro6.level = gcpro_level++; \ | ||
| 3208 | gcprolist = &gcpro6; } | ||
| 3178 | 3209 | ||
| 3179 | #define GCPRO7(a, b, c, d, e, f, g) \ | 3210 | #define GCPRO7(a, b, c, d, e, f, g) \ |
| 3180 | {gcpro1.next = gcprolist; gcpro1.var = &(a); gcpro1.nvars = 1; \ | 3211 | { gcpro1.next = gcprolist; gcpro1.var = &(a); gcpro1.nvars = 1; \ |
| 3181 | gcpro1.level = gcpro_level; \ | 3212 | gcpro1.name = __FILE__; gcpro1.lineno = __LINE__; gcpro1.idx = 1; \ |
| 3182 | gcpro2.next = &gcpro1; gcpro2.var = &(b); gcpro2.nvars = 1; \ | 3213 | gcpro1.level = gcpro_level; \ |
| 3183 | gcpro3.next = &gcpro2; gcpro3.var = &(c); gcpro3.nvars = 1; \ | 3214 | gcpro2.next = &gcpro1; gcpro2.var = &(b); gcpro2.nvars = 1; \ |
| 3184 | gcpro4.next = &gcpro3; gcpro4.var = &(d); gcpro4.nvars = 1; \ | 3215 | gcpro2.name = __FILE__; gcpro2.lineno = __LINE__; gcpro2.idx = 2; \ |
| 3185 | gcpro5.next = &gcpro4; gcpro5.var = &(e); gcpro5.nvars = 1; \ | 3216 | gcpro3.next = &gcpro2; gcpro3.var = &(c); gcpro3.nvars = 1; \ |
| 3186 | gcpro6.next = &gcpro5; gcpro6.var = &(f); gcpro6.nvars = 1; \ | 3217 | gcpro3.name = __FILE__; gcpro3.lineno = __LINE__; gcpro3.idx = 3; \ |
| 3187 | gcpro7.next = &gcpro6; gcpro7.var = &(g); gcpro7.nvars = 1; \ | 3218 | gcpro4.next = &gcpro3; gcpro4.var = &(d); gcpro4.nvars = 1; \ |
| 3188 | gcpro7.level = gcpro_level++; \ | 3219 | gcpro4.name = __FILE__; gcpro4.lineno = __LINE__; gcpro4.idx = 4; \ |
| 3189 | gcprolist = &gcpro7; } | 3220 | gcpro5.next = &gcpro4; gcpro5.var = &(e); gcpro5.nvars = 1; \ |
| 3221 | gcpro5.name = __FILE__; gcpro5.lineno = __LINE__; gcpro5.idx = 5; \ | ||
| 3222 | gcpro6.next = &gcpro5; gcpro6.var = &(f); gcpro6.nvars = 1; \ | ||
| 3223 | gcpro6.name = __FILE__; gcpro6.lineno = __LINE__; gcpro6.idx = 6; \ | ||
| 3224 | gcpro7.next = &gcpro6; gcpro7.var = &(g); gcpro7.nvars = 1; \ | ||
| 3225 | gcpro7.name = __FILE__; gcpro7.lineno = __LINE__; gcpro7.idx = 7; \ | ||
| 3226 | gcpro7.level = gcpro_level++; \ | ||
| 3227 | gcprolist = &gcpro7; } | ||
| 3190 | 3228 | ||
| 3191 | #define UNGCPRO \ | 3229 | #define UNGCPRO \ |
| 3192 | (--gcpro_level != gcpro1.level \ | 3230 | (--gcpro_level != gcpro1.level \ |