diff options
Diffstat (limited to 'src/comp.c')
| -rw-r--r-- | src/comp.c | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/src/comp.c b/src/comp.c index 7bb160e4f0a..fb9b1a5a2d8 100644 --- a/src/comp.c +++ b/src/comp.c | |||
| @@ -5136,21 +5136,29 @@ make_subr (Lisp_Object symbol_name, Lisp_Object minarg, Lisp_Object maxarg, | |||
| 5136 | if (CONSP (minarg)) | 5136 | if (CONSP (minarg)) |
| 5137 | { | 5137 | { |
| 5138 | /* Dynamic code. */ | 5138 | /* Dynamic code. */ |
| 5139 | x->s.lambda_list[0] = maxarg; | 5139 | #ifdef HAVE_NATIVE_COMP |
| 5140 | x->s.lambda_list = maxarg; | ||
| 5141 | #endif | ||
| 5140 | maxarg = XCDR (minarg); | 5142 | maxarg = XCDR (minarg); |
| 5141 | minarg = XCAR (minarg); | 5143 | minarg = XCAR (minarg); |
| 5142 | } | 5144 | } |
| 5143 | else | 5145 | else |
| 5144 | x->s.lambda_list[0] = Qnil; | 5146 | { |
| 5147 | #ifdef HAVE_NATIVE_COMP | ||
| 5148 | x->s.lambda_list = Qnil; | ||
| 5149 | #endif | ||
| 5150 | } | ||
| 5145 | x->s.function.a0 = func; | 5151 | x->s.function.a0 = func; |
| 5146 | x->s.min_args = XFIXNUM (minarg); | 5152 | x->s.min_args = XFIXNUM (minarg); |
| 5147 | x->s.max_args = FIXNUMP (maxarg) ? XFIXNUM (maxarg) : MANY; | 5153 | x->s.max_args = FIXNUMP (maxarg) ? XFIXNUM (maxarg) : MANY; |
| 5148 | x->s.symbol_name = xstrdup (SSDATA (symbol_name)); | 5154 | x->s.symbol_name = xstrdup (SSDATA (symbol_name)); |
| 5149 | x->s.native_intspec = intspec; | 5155 | x->s.native_intspec = intspec; |
| 5150 | x->s.doc = XFIXNUM (doc_idx); | 5156 | x->s.doc = XFIXNUM (doc_idx); |
| 5151 | x->s.native_comp_u[0] = comp_u; | 5157 | #ifdef HAVE_NATIVE_COMP |
| 5152 | x->s.native_c_name[0] = xstrdup (SSDATA (c_name)); | 5158 | x->s.native_comp_u = comp_u; |
| 5153 | x->s.type[0] = type; | 5159 | x->s.native_c_name = xstrdup (SSDATA (c_name)); |
| 5160 | x->s.type = type; | ||
| 5161 | #endif | ||
| 5154 | Lisp_Object tem; | 5162 | Lisp_Object tem; |
| 5155 | XSETSUBR (tem, &x->s); | 5163 | XSETSUBR (tem, &x->s); |
| 5156 | 5164 | ||