diff options
| author | Gerd Moellmann | 2000-04-04 14:54:29 +0000 |
|---|---|---|
| committer | Gerd Moellmann | 2000-04-04 14:54:29 +0000 |
| commit | bf1de43e9e1a9e17c88ec66db58eeb655230c6c2 (patch) | |
| tree | b3084adc7594c3928aadf8379b6119c9fdcc0403 /src/bytecode.c | |
| parent | 62f20204b7f740042e4e34c651c8f1d9e1aa07c1 (diff) | |
| download | emacs-bf1de43e9e1a9e17c88ec66db58eeb655230c6c2.tar.gz emacs-bf1de43e9e1a9e17c88ec66db58eeb655230c6c2.zip | |
(Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
AFTER_POTENTIAL_GC calls around calls to functions that can
signal an error and thus invoke the debugger.
Diffstat (limited to 'src/bytecode.c')
| -rw-r--r-- | src/bytecode.c | 137 |
1 files changed, 120 insertions, 17 deletions
diff --git a/src/bytecode.c b/src/bytecode.c index cb90daaba97..ff9a36e54b7 100644 --- a/src/bytecode.c +++ b/src/bytecode.c | |||
| @@ -475,10 +475,18 @@ If the third argument is incorrect, Emacs may crash.") | |||
| 475 | { | 475 | { |
| 476 | v2 = XSYMBOL (v1)->value; | 476 | v2 = XSYMBOL (v1)->value; |
| 477 | if (MISCP (v2) || EQ (v2, Qunbound)) | 477 | if (MISCP (v2) || EQ (v2, Qunbound)) |
| 478 | v2 = Fsymbol_value (v1); | 478 | { |
| 479 | BEFORE_POTENTIAL_GC (); | ||
| 480 | v2 = Fsymbol_value (v1); | ||
| 481 | AFTER_POTENTIAL_GC (); | ||
| 482 | } | ||
| 479 | } | 483 | } |
| 480 | else | 484 | else |
| 481 | v2 = Fsymbol_value (v1); | 485 | { |
| 486 | BEFORE_POTENTIAL_GC (); | ||
| 487 | v2 = Fsymbol_value (v1); | ||
| 488 | AFTER_POTENTIAL_GC (); | ||
| 489 | } | ||
| 482 | PUSH (v2); | 490 | PUSH (v2); |
| 483 | break; | 491 | break; |
| 484 | } | 492 | } |
| @@ -522,8 +530,10 @@ If the third argument is incorrect, Emacs may crash.") | |||
| 522 | case Bmemq: | 530 | case Bmemq: |
| 523 | { | 531 | { |
| 524 | Lisp_Object v1; | 532 | Lisp_Object v1; |
| 533 | BEFORE_POTENTIAL_GC (); | ||
| 525 | v1 = POP; | 534 | v1 = POP; |
| 526 | TOP = Fmemq (TOP, v1); | 535 | TOP = Fmemq (TOP, v1); |
| 536 | AFTER_POTENTIAL_GC (); | ||
| 527 | break; | 537 | break; |
| 528 | } | 538 | } |
| 529 | 539 | ||
| @@ -564,7 +574,7 @@ If the third argument is incorrect, Emacs may crash.") | |||
| 564 | Lisp_Object sym, val; | 574 | Lisp_Object sym, val; |
| 565 | 575 | ||
| 566 | sym = vectorp[op]; | 576 | sym = vectorp[op]; |
| 567 | val = POP; | 577 | val = TOP; |
| 568 | 578 | ||
| 569 | /* Inline the most common case. */ | 579 | /* Inline the most common case. */ |
| 570 | if (SYMBOLP (sym) | 580 | if (SYMBOLP (sym) |
| @@ -581,8 +591,13 @@ If the third argument is incorrect, Emacs may crash.") | |||
| 581 | && !EQ (val, sym))) | 591 | && !EQ (val, sym))) |
| 582 | XSYMBOL (sym)->value = val; | 592 | XSYMBOL (sym)->value = val; |
| 583 | else | 593 | else |
| 584 | set_internal (sym, val, current_buffer, 0); | 594 | { |
| 595 | BEFORE_POTENTIAL_GC (); | ||
| 596 | set_internal (sym, val, current_buffer, 0); | ||
| 597 | AFTER_POTENTIAL_GC (); | ||
| 598 | } | ||
| 585 | } | 599 | } |
| 600 | POP; | ||
| 586 | break; | 601 | break; |
| 587 | 602 | ||
| 588 | case Bdup: | 603 | case Bdup: |
| @@ -809,8 +824,8 @@ If the third argument is incorrect, Emacs may crash.") | |||
| 809 | case Bcatch: | 824 | case Bcatch: |
| 810 | { | 825 | { |
| 811 | Lisp_Object v1; | 826 | Lisp_Object v1; |
| 812 | v1 = POP; | ||
| 813 | BEFORE_POTENTIAL_GC (); | 827 | BEFORE_POTENTIAL_GC (); |
| 828 | v1 = POP; | ||
| 814 | TOP = internal_catch (TOP, Feval, v1); | 829 | TOP = internal_catch (TOP, Feval, v1); |
| 815 | AFTER_POTENTIAL_GC (); | 830 | AFTER_POTENTIAL_GC (); |
| 816 | break; | 831 | break; |
| @@ -842,8 +857,8 @@ If the third argument is incorrect, Emacs may crash.") | |||
| 842 | case Btemp_output_buffer_show: | 857 | case Btemp_output_buffer_show: |
| 843 | { | 858 | { |
| 844 | Lisp_Object v1; | 859 | Lisp_Object v1; |
| 845 | v1 = POP; | ||
| 846 | BEFORE_POTENTIAL_GC (); | 860 | BEFORE_POTENTIAL_GC (); |
| 861 | v1 = POP; | ||
| 847 | temp_output_buffer_show (TOP); | 862 | temp_output_buffer_show (TOP); |
| 848 | TOP = v1; | 863 | TOP = v1; |
| 849 | /* pop binding of standard-output */ | 864 | /* pop binding of standard-output */ |
| @@ -855,9 +870,9 @@ If the third argument is incorrect, Emacs may crash.") | |||
| 855 | case Bnth: | 870 | case Bnth: |
| 856 | { | 871 | { |
| 857 | Lisp_Object v1, v2; | 872 | Lisp_Object v1, v2; |
| 873 | BEFORE_POTENTIAL_GC (); | ||
| 858 | v1 = POP; | 874 | v1 = POP; |
| 859 | v2 = TOP; | 875 | v2 = TOP; |
| 860 | BEFORE_POTENTIAL_GC (); | ||
| 861 | CHECK_NUMBER (v2, 0); | 876 | CHECK_NUMBER (v2, 0); |
| 862 | AFTER_POTENTIAL_GC (); | 877 | AFTER_POTENTIAL_GC (); |
| 863 | op = XINT (v2); | 878 | op = XINT (v2); |
| @@ -947,86 +962,110 @@ If the third argument is incorrect, Emacs may crash.") | |||
| 947 | break; | 962 | break; |
| 948 | 963 | ||
| 949 | case Blength: | 964 | case Blength: |
| 965 | BEFORE_POTENTIAL_GC (); | ||
| 950 | TOP = Flength (TOP); | 966 | TOP = Flength (TOP); |
| 967 | AFTER_POTENTIAL_GC (); | ||
| 951 | break; | 968 | break; |
| 952 | 969 | ||
| 953 | case Baref: | 970 | case Baref: |
| 954 | { | 971 | { |
| 955 | Lisp_Object v1; | 972 | Lisp_Object v1; |
| 973 | BEFORE_POTENTIAL_GC (); | ||
| 956 | v1 = POP; | 974 | v1 = POP; |
| 957 | TOP = Faref (TOP, v1); | 975 | TOP = Faref (TOP, v1); |
| 976 | AFTER_POTENTIAL_GC (); | ||
| 958 | break; | 977 | break; |
| 959 | } | 978 | } |
| 960 | 979 | ||
| 961 | case Baset: | 980 | case Baset: |
| 962 | { | 981 | { |
| 963 | Lisp_Object v1, v2; | 982 | Lisp_Object v1, v2; |
| 983 | BEFORE_POTENTIAL_GC (); | ||
| 964 | v2 = POP; v1 = POP; | 984 | v2 = POP; v1 = POP; |
| 965 | TOP = Faset (TOP, v1, v2); | 985 | TOP = Faset (TOP, v1, v2); |
| 986 | AFTER_POTENTIAL_GC (); | ||
| 966 | break; | 987 | break; |
| 967 | } | 988 | } |
| 968 | 989 | ||
| 969 | case Bsymbol_value: | 990 | case Bsymbol_value: |
| 991 | BEFORE_POTENTIAL_GC (); | ||
| 970 | TOP = Fsymbol_value (TOP); | 992 | TOP = Fsymbol_value (TOP); |
| 993 | AFTER_POTENTIAL_GC (); | ||
| 971 | break; | 994 | break; |
| 972 | 995 | ||
| 973 | case Bsymbol_function: | 996 | case Bsymbol_function: |
| 997 | BEFORE_POTENTIAL_GC (); | ||
| 974 | TOP = Fsymbol_function (TOP); | 998 | TOP = Fsymbol_function (TOP); |
| 999 | AFTER_POTENTIAL_GC (); | ||
| 975 | break; | 1000 | break; |
| 976 | 1001 | ||
| 977 | case Bset: | 1002 | case Bset: |
| 978 | { | 1003 | { |
| 979 | Lisp_Object v1; | 1004 | Lisp_Object v1; |
| 1005 | BEFORE_POTENTIAL_GC (); | ||
| 980 | v1 = POP; | 1006 | v1 = POP; |
| 981 | TOP = Fset (TOP, v1); | 1007 | TOP = Fset (TOP, v1); |
| 1008 | AFTER_POTENTIAL_GC (); | ||
| 982 | break; | 1009 | break; |
| 983 | } | 1010 | } |
| 984 | 1011 | ||
| 985 | case Bfset: | 1012 | case Bfset: |
| 986 | { | 1013 | { |
| 987 | Lisp_Object v1; | 1014 | Lisp_Object v1; |
| 1015 | BEFORE_POTENTIAL_GC (); | ||
| 988 | v1 = POP; | 1016 | v1 = POP; |
| 989 | TOP = Ffset (TOP, v1); | 1017 | TOP = Ffset (TOP, v1); |
| 1018 | AFTER_POTENTIAL_GC (); | ||
| 990 | break; | 1019 | break; |
| 991 | } | 1020 | } |
| 992 | 1021 | ||
| 993 | case Bget: | 1022 | case Bget: |
| 994 | { | 1023 | { |
| 995 | Lisp_Object v1; | 1024 | Lisp_Object v1; |
| 1025 | BEFORE_POTENTIAL_GC (); | ||
| 996 | v1 = POP; | 1026 | v1 = POP; |
| 997 | TOP = Fget (TOP, v1); | 1027 | TOP = Fget (TOP, v1); |
| 1028 | AFTER_POTENTIAL_GC (); | ||
| 998 | break; | 1029 | break; |
| 999 | } | 1030 | } |
| 1000 | 1031 | ||
| 1001 | case Bsubstring: | 1032 | case Bsubstring: |
| 1002 | { | 1033 | { |
| 1003 | Lisp_Object v1, v2; | 1034 | Lisp_Object v1, v2; |
| 1004 | v2 = POP; v1 = POP; | ||
| 1005 | BEFORE_POTENTIAL_GC (); | 1035 | BEFORE_POTENTIAL_GC (); |
| 1036 | v2 = POP; v1 = POP; | ||
| 1006 | TOP = Fsubstring (TOP, v1, v2); | 1037 | TOP = Fsubstring (TOP, v1, v2); |
| 1007 | AFTER_POTENTIAL_GC (); | 1038 | AFTER_POTENTIAL_GC (); |
| 1008 | break; | 1039 | break; |
| 1009 | } | 1040 | } |
| 1010 | 1041 | ||
| 1011 | case Bconcat2: | 1042 | case Bconcat2: |
| 1043 | BEFORE_POTENTIAL_GC (); | ||
| 1012 | DISCARD (1); | 1044 | DISCARD (1); |
| 1013 | TOP = Fconcat (2, &TOP); | 1045 | TOP = Fconcat (2, &TOP); |
| 1046 | AFTER_POTENTIAL_GC (); | ||
| 1014 | break; | 1047 | break; |
| 1015 | 1048 | ||
| 1016 | case Bconcat3: | 1049 | case Bconcat3: |
| 1050 | BEFORE_POTENTIAL_GC (); | ||
| 1017 | DISCARD (2); | 1051 | DISCARD (2); |
| 1018 | TOP = Fconcat (3, &TOP); | 1052 | TOP = Fconcat (3, &TOP); |
| 1053 | AFTER_POTENTIAL_GC (); | ||
| 1019 | break; | 1054 | break; |
| 1020 | 1055 | ||
| 1021 | case Bconcat4: | 1056 | case Bconcat4: |
| 1057 | BEFORE_POTENTIAL_GC (); | ||
| 1022 | DISCARD (3); | 1058 | DISCARD (3); |
| 1023 | TOP = Fconcat (4, &TOP); | 1059 | TOP = Fconcat (4, &TOP); |
| 1060 | AFTER_POTENTIAL_GC (); | ||
| 1024 | break; | 1061 | break; |
| 1025 | 1062 | ||
| 1026 | case BconcatN: | 1063 | case BconcatN: |
| 1027 | op = FETCH; | 1064 | op = FETCH; |
| 1065 | BEFORE_POTENTIAL_GC (); | ||
| 1028 | DISCARD (op - 1); | 1066 | DISCARD (op - 1); |
| 1029 | TOP = Fconcat (op, &TOP); | 1067 | TOP = Fconcat (op, &TOP); |
| 1068 | AFTER_POTENTIAL_GC (); | ||
| 1030 | break; | 1069 | break; |
| 1031 | 1070 | ||
| 1032 | case Bsub1: | 1071 | case Bsub1: |
| @@ -1053,15 +1092,19 @@ If the third argument is incorrect, Emacs may crash.") | |||
| 1053 | TOP = v1; | 1092 | TOP = v1; |
| 1054 | } | 1093 | } |
| 1055 | else | 1094 | else |
| 1056 | TOP = Fadd1 (v1); | 1095 | { |
| 1096 | BEFORE_POTENTIAL_GC (); | ||
| 1097 | TOP = Fadd1 (v1); | ||
| 1098 | AFTER_POTENTIAL_GC (); | ||
| 1099 | } | ||
| 1057 | break; | 1100 | break; |
| 1058 | } | 1101 | } |
| 1059 | 1102 | ||
| 1060 | case Beqlsign: | 1103 | case Beqlsign: |
| 1061 | { | 1104 | { |
| 1062 | Lisp_Object v1, v2; | 1105 | Lisp_Object v1, v2; |
| 1063 | v2 = POP; v1 = TOP; | ||
| 1064 | BEFORE_POTENTIAL_GC (); | 1106 | BEFORE_POTENTIAL_GC (); |
| 1107 | v2 = POP; v1 = TOP; | ||
| 1065 | CHECK_NUMBER_OR_FLOAT_COERCE_MARKER (v1, 0); | 1108 | CHECK_NUMBER_OR_FLOAT_COERCE_MARKER (v1, 0); |
| 1066 | CHECK_NUMBER_OR_FLOAT_COERCE_MARKER (v2, 0); | 1109 | CHECK_NUMBER_OR_FLOAT_COERCE_MARKER (v2, 0); |
| 1067 | AFTER_POTENTIAL_GC (); | 1110 | AFTER_POTENTIAL_GC (); |
| @@ -1081,24 +1124,30 @@ If the third argument is incorrect, Emacs may crash.") | |||
| 1081 | case Bgtr: | 1124 | case Bgtr: |
| 1082 | { | 1125 | { |
| 1083 | Lisp_Object v1; | 1126 | Lisp_Object v1; |
| 1127 | BEFORE_POTENTIAL_GC (); | ||
| 1084 | v1 = POP; | 1128 | v1 = POP; |
| 1085 | TOP = Fgtr (TOP, v1); | 1129 | TOP = Fgtr (TOP, v1); |
| 1130 | AFTER_POTENTIAL_GC (); | ||
| 1086 | break; | 1131 | break; |
| 1087 | } | 1132 | } |
| 1088 | 1133 | ||
| 1089 | case Blss: | 1134 | case Blss: |
| 1090 | { | 1135 | { |
| 1091 | Lisp_Object v1; | 1136 | Lisp_Object v1; |
| 1137 | BEFORE_POTENTIAL_GC (); | ||
| 1092 | v1 = POP; | 1138 | v1 = POP; |
| 1093 | TOP = Flss (TOP, v1); | 1139 | TOP = Flss (TOP, v1); |
| 1140 | AFTER_POTENTIAL_GC (); | ||
| 1094 | break; | 1141 | break; |
| 1095 | } | 1142 | } |
| 1096 | 1143 | ||
| 1097 | case Bleq: | 1144 | case Bleq: |
| 1098 | { | 1145 | { |
| 1099 | Lisp_Object v1; | 1146 | Lisp_Object v1; |
| 1147 | BEFORE_POTENTIAL_GC (); | ||
| 1100 | v1 = POP; | 1148 | v1 = POP; |
| 1101 | TOP = Fleq (TOP, v1); | 1149 | TOP = Fleq (TOP, v1); |
| 1150 | AFTER_POTENTIAL_GC (); | ||
| 1102 | break; | 1151 | break; |
| 1103 | } | 1152 | } |
| 1104 | 1153 | ||
| @@ -1111,8 +1160,10 @@ If the third argument is incorrect, Emacs may crash.") | |||
| 1111 | } | 1160 | } |
| 1112 | 1161 | ||
| 1113 | case Bdiff: | 1162 | case Bdiff: |
| 1163 | BEFORE_POTENTIAL_GC (); | ||
| 1114 | DISCARD (1); | 1164 | DISCARD (1); |
| 1115 | TOP = Fminus (2, &TOP); | 1165 | TOP = Fminus (2, &TOP); |
| 1166 | AFTER_POTENTIAL_GC (); | ||
| 1116 | break; | 1167 | break; |
| 1117 | 1168 | ||
| 1118 | case Bnegate: | 1169 | case Bnegate: |
| @@ -1125,40 +1176,56 @@ If the third argument is incorrect, Emacs may crash.") | |||
| 1125 | TOP = v1; | 1176 | TOP = v1; |
| 1126 | } | 1177 | } |
| 1127 | else | 1178 | else |
| 1128 | TOP = Fminus (1, &TOP); | 1179 | { |
| 1180 | BEFORE_POTENTIAL_GC (); | ||
| 1181 | TOP = Fminus (1, &TOP); | ||
| 1182 | AFTER_POTENTIAL_GC (); | ||
| 1183 | } | ||
| 1129 | break; | 1184 | break; |
| 1130 | } | 1185 | } |
| 1131 | 1186 | ||
| 1132 | case Bplus: | 1187 | case Bplus: |
| 1188 | BEFORE_POTENTIAL_GC (); | ||
| 1133 | DISCARD (1); | 1189 | DISCARD (1); |
| 1134 | TOP = Fplus (2, &TOP); | 1190 | TOP = Fplus (2, &TOP); |
| 1191 | AFTER_POTENTIAL_GC (); | ||
| 1135 | break; | 1192 | break; |
| 1136 | 1193 | ||
| 1137 | case Bmax: | 1194 | case Bmax: |
| 1195 | BEFORE_POTENTIAL_GC (); | ||
| 1138 | DISCARD (1); | 1196 | DISCARD (1); |
| 1139 | TOP = Fmax (2, &TOP); | 1197 | TOP = Fmax (2, &TOP); |
| 1198 | AFTER_POTENTIAL_GC (); | ||
| 1140 | break; | 1199 | break; |
| 1141 | 1200 | ||
| 1142 | case Bmin: | 1201 | case Bmin: |
| 1202 | BEFORE_POTENTIAL_GC (); | ||
| 1143 | DISCARD (1); | 1203 | DISCARD (1); |
| 1144 | TOP = Fmin (2, &TOP); | 1204 | TOP = Fmin (2, &TOP); |
| 1205 | AFTER_POTENTIAL_GC (); | ||
| 1145 | break; | 1206 | break; |
| 1146 | 1207 | ||
| 1147 | case Bmult: | 1208 | case Bmult: |
| 1209 | BEFORE_POTENTIAL_GC (); | ||
| 1148 | DISCARD (1); | 1210 | DISCARD (1); |
| 1149 | TOP = Ftimes (2, &TOP); | 1211 | TOP = Ftimes (2, &TOP); |
| 1212 | AFTER_POTENTIAL_GC (); | ||
| 1150 | break; | 1213 | break; |
| 1151 | 1214 | ||
| 1152 | case Bquo: | 1215 | case Bquo: |
| 1216 | BEFORE_POTENTIAL_GC (); | ||
| 1153 | DISCARD (1); | 1217 | DISCARD (1); |
| 1154 | TOP = Fquo (2, &TOP); | 1218 | TOP = Fquo (2, &TOP); |
| 1219 | AFTER_POTENTIAL_GC (); | ||
| 1155 | break; | 1220 | break; |
| 1156 | 1221 | ||
| 1157 | case Brem: | 1222 | case Brem: |
| 1158 | { | 1223 | { |
| 1159 | Lisp_Object v1; | 1224 | Lisp_Object v1; |
| 1225 | BEFORE_POTENTIAL_GC (); | ||
| 1160 | v1 = POP; | 1226 | v1 = POP; |
| 1161 | TOP = Frem (TOP, v1); | 1227 | TOP = Frem (TOP, v1); |
| 1228 | AFTER_POTENTIAL_GC (); | ||
| 1162 | break; | 1229 | break; |
| 1163 | } | 1230 | } |
| 1164 | 1231 | ||
| @@ -1207,13 +1274,17 @@ If the third argument is incorrect, Emacs may crash.") | |||
| 1207 | } | 1274 | } |
| 1208 | 1275 | ||
| 1209 | case Bchar_after: | 1276 | case Bchar_after: |
| 1277 | BEFORE_POTENTIAL_GC (); | ||
| 1210 | TOP = Fchar_after (TOP); | 1278 | TOP = Fchar_after (TOP); |
| 1279 | AFTER_POTENTIAL_GC (); | ||
| 1211 | break; | 1280 | break; |
| 1212 | 1281 | ||
| 1213 | case Bfollowing_char: | 1282 | case Bfollowing_char: |
| 1214 | { | 1283 | { |
| 1215 | Lisp_Object v1; | 1284 | Lisp_Object v1; |
| 1285 | BEFORE_POTENTIAL_GC (); | ||
| 1216 | v1 = Ffollowing_char (); | 1286 | v1 = Ffollowing_char (); |
| 1287 | AFTER_POTENTIAL_GC (); | ||
| 1217 | PUSH (v1); | 1288 | PUSH (v1); |
| 1218 | break; | 1289 | break; |
| 1219 | } | 1290 | } |
| @@ -1221,7 +1292,9 @@ If the third argument is incorrect, Emacs may crash.") | |||
| 1221 | case Bpreceding_char: | 1292 | case Bpreceding_char: |
| 1222 | { | 1293 | { |
| 1223 | Lisp_Object v1; | 1294 | Lisp_Object v1; |
| 1295 | BEFORE_POTENTIAL_GC (); | ||
| 1224 | v1 = Fprevious_char (); | 1296 | v1 = Fprevious_char (); |
| 1297 | AFTER_POTENTIAL_GC (); | ||
| 1225 | PUSH (v1); | 1298 | PUSH (v1); |
| 1226 | break; | 1299 | break; |
| 1227 | } | 1300 | } |
| @@ -1285,8 +1358,8 @@ If the third argument is incorrect, Emacs may crash.") | |||
| 1285 | case Bskip_chars_forward: | 1358 | case Bskip_chars_forward: |
| 1286 | { | 1359 | { |
| 1287 | Lisp_Object v1; | 1360 | Lisp_Object v1; |
| 1288 | v1 = POP; | ||
| 1289 | BEFORE_POTENTIAL_GC (); | 1361 | BEFORE_POTENTIAL_GC (); |
| 1362 | v1 = POP; | ||
| 1290 | TOP = Fskip_chars_forward (TOP, v1); | 1363 | TOP = Fskip_chars_forward (TOP, v1); |
| 1291 | AFTER_POTENTIAL_GC (); | 1364 | AFTER_POTENTIAL_GC (); |
| 1292 | break; | 1365 | break; |
| @@ -1295,8 +1368,8 @@ If the third argument is incorrect, Emacs may crash.") | |||
| 1295 | case Bskip_chars_backward: | 1368 | case Bskip_chars_backward: |
| 1296 | { | 1369 | { |
| 1297 | Lisp_Object v1; | 1370 | Lisp_Object v1; |
| 1298 | v1 = POP; | ||
| 1299 | BEFORE_POTENTIAL_GC (); | 1371 | BEFORE_POTENTIAL_GC (); |
| 1372 | v1 = POP; | ||
| 1300 | TOP = Fskip_chars_backward (TOP, v1); | 1373 | TOP = Fskip_chars_backward (TOP, v1); |
| 1301 | AFTER_POTENTIAL_GC (); | 1374 | AFTER_POTENTIAL_GC (); |
| 1302 | break; | 1375 | break; |
| @@ -1318,8 +1391,8 @@ If the third argument is incorrect, Emacs may crash.") | |||
| 1318 | case Bbuffer_substring: | 1391 | case Bbuffer_substring: |
| 1319 | { | 1392 | { |
| 1320 | Lisp_Object v1; | 1393 | Lisp_Object v1; |
| 1321 | v1 = POP; | ||
| 1322 | BEFORE_POTENTIAL_GC (); | 1394 | BEFORE_POTENTIAL_GC (); |
| 1395 | v1 = POP; | ||
| 1323 | TOP = Fbuffer_substring (TOP, v1); | 1396 | TOP = Fbuffer_substring (TOP, v1); |
| 1324 | AFTER_POTENTIAL_GC (); | 1397 | AFTER_POTENTIAL_GC (); |
| 1325 | break; | 1398 | break; |
| @@ -1328,8 +1401,8 @@ If the third argument is incorrect, Emacs may crash.") | |||
| 1328 | case Bdelete_region: | 1401 | case Bdelete_region: |
| 1329 | { | 1402 | { |
| 1330 | Lisp_Object v1; | 1403 | Lisp_Object v1; |
| 1331 | v1 = POP; | ||
| 1332 | BEFORE_POTENTIAL_GC (); | 1404 | BEFORE_POTENTIAL_GC (); |
| 1405 | v1 = POP; | ||
| 1333 | TOP = Fdelete_region (TOP, v1); | 1406 | TOP = Fdelete_region (TOP, v1); |
| 1334 | AFTER_POTENTIAL_GC (); | 1407 | AFTER_POTENTIAL_GC (); |
| 1335 | break; | 1408 | break; |
| @@ -1338,8 +1411,8 @@ If the third argument is incorrect, Emacs may crash.") | |||
| 1338 | case Bnarrow_to_region: | 1411 | case Bnarrow_to_region: |
| 1339 | { | 1412 | { |
| 1340 | Lisp_Object v1; | 1413 | Lisp_Object v1; |
| 1341 | v1 = POP; | ||
| 1342 | BEFORE_POTENTIAL_GC (); | 1414 | BEFORE_POTENTIAL_GC (); |
| 1415 | v1 = POP; | ||
| 1343 | TOP = Fnarrow_to_region (TOP, v1); | 1416 | TOP = Fnarrow_to_region (TOP, v1); |
| 1344 | AFTER_POTENTIAL_GC (); | 1417 | AFTER_POTENTIAL_GC (); |
| 1345 | break; | 1418 | break; |
| @@ -1360,41 +1433,55 @@ If the third argument is incorrect, Emacs may crash.") | |||
| 1360 | case Bset_marker: | 1433 | case Bset_marker: |
| 1361 | { | 1434 | { |
| 1362 | Lisp_Object v1, v2; | 1435 | Lisp_Object v1, v2; |
| 1436 | BEFORE_POTENTIAL_GC (); | ||
| 1363 | v1 = POP; | 1437 | v1 = POP; |
| 1364 | v2 = POP; | 1438 | v2 = POP; |
| 1365 | TOP = Fset_marker (TOP, v2, v1); | 1439 | TOP = Fset_marker (TOP, v2, v1); |
| 1440 | AFTER_POTENTIAL_GC (); | ||
| 1366 | break; | 1441 | break; |
| 1367 | } | 1442 | } |
| 1368 | 1443 | ||
| 1369 | case Bmatch_beginning: | 1444 | case Bmatch_beginning: |
| 1445 | BEFORE_POTENTIAL_GC (); | ||
| 1370 | TOP = Fmatch_beginning (TOP); | 1446 | TOP = Fmatch_beginning (TOP); |
| 1447 | AFTER_POTENTIAL_GC (); | ||
| 1371 | break; | 1448 | break; |
| 1372 | 1449 | ||
| 1373 | case Bmatch_end: | 1450 | case Bmatch_end: |
| 1451 | BEFORE_POTENTIAL_GC (); | ||
| 1374 | TOP = Fmatch_end (TOP); | 1452 | TOP = Fmatch_end (TOP); |
| 1453 | AFTER_POTENTIAL_GC (); | ||
| 1375 | break; | 1454 | break; |
| 1376 | 1455 | ||
| 1377 | case Bupcase: | 1456 | case Bupcase: |
| 1457 | BEFORE_POTENTIAL_GC (); | ||
| 1378 | TOP = Fupcase (TOP); | 1458 | TOP = Fupcase (TOP); |
| 1459 | AFTER_POTENTIAL_GC (); | ||
| 1379 | break; | 1460 | break; |
| 1380 | 1461 | ||
| 1381 | case Bdowncase: | 1462 | case Bdowncase: |
| 1463 | BEFORE_POTENTIAL_GC (); | ||
| 1382 | TOP = Fdowncase (TOP); | 1464 | TOP = Fdowncase (TOP); |
| 1465 | AFTER_POTENTIAL_GC (); | ||
| 1383 | break; | 1466 | break; |
| 1384 | 1467 | ||
| 1385 | case Bstringeqlsign: | 1468 | case Bstringeqlsign: |
| 1386 | { | 1469 | { |
| 1387 | Lisp_Object v1; | 1470 | Lisp_Object v1; |
| 1471 | BEFORE_POTENTIAL_GC (); | ||
| 1388 | v1 = POP; | 1472 | v1 = POP; |
| 1389 | TOP = Fstring_equal (TOP, v1); | 1473 | TOP = Fstring_equal (TOP, v1); |
| 1474 | AFTER_POTENTIAL_GC (); | ||
| 1390 | break; | 1475 | break; |
| 1391 | } | 1476 | } |
| 1392 | 1477 | ||
| 1393 | case Bstringlss: | 1478 | case Bstringlss: |
| 1394 | { | 1479 | { |
| 1395 | Lisp_Object v1; | 1480 | Lisp_Object v1; |
| 1481 | BEFORE_POTENTIAL_GC (); | ||
| 1396 | v1 = POP; | 1482 | v1 = POP; |
| 1397 | TOP = Fstring_lessp (TOP, v1); | 1483 | TOP = Fstring_lessp (TOP, v1); |
| 1484 | AFTER_POTENTIAL_GC (); | ||
| 1398 | break; | 1485 | break; |
| 1399 | } | 1486 | } |
| 1400 | 1487 | ||
| @@ -1409,8 +1496,10 @@ If the third argument is incorrect, Emacs may crash.") | |||
| 1409 | case Bnthcdr: | 1496 | case Bnthcdr: |
| 1410 | { | 1497 | { |
| 1411 | Lisp_Object v1; | 1498 | Lisp_Object v1; |
| 1499 | BEFORE_POTENTIAL_GC (); | ||
| 1412 | v1 = POP; | 1500 | v1 = POP; |
| 1413 | TOP = Fnthcdr (TOP, v1); | 1501 | TOP = Fnthcdr (TOP, v1); |
| 1502 | AFTER_POTENTIAL_GC (); | ||
| 1414 | break; | 1503 | break; |
| 1415 | } | 1504 | } |
| 1416 | 1505 | ||
| @@ -1420,9 +1509,9 @@ If the third argument is incorrect, Emacs may crash.") | |||
| 1420 | if (CONSP (TOP)) | 1509 | if (CONSP (TOP)) |
| 1421 | { | 1510 | { |
| 1422 | /* Exchange args and then do nth. */ | 1511 | /* Exchange args and then do nth. */ |
| 1512 | BEFORE_POTENTIAL_GC (); | ||
| 1423 | v2 = POP; | 1513 | v2 = POP; |
| 1424 | v1 = TOP; | 1514 | v1 = TOP; |
| 1425 | BEFORE_POTENTIAL_GC (); | ||
| 1426 | CHECK_NUMBER (v2, 0); | 1515 | CHECK_NUMBER (v2, 0); |
| 1427 | AFTER_POTENTIAL_GC (); | 1516 | AFTER_POTENTIAL_GC (); |
| 1428 | op = XINT (v2); | 1517 | op = XINT (v2); |
| @@ -1455,8 +1544,10 @@ If the third argument is incorrect, Emacs may crash.") | |||
| 1455 | } | 1544 | } |
| 1456 | else | 1545 | else |
| 1457 | { | 1546 | { |
| 1547 | BEFORE_POTENTIAL_GC (); | ||
| 1458 | v1 = POP; | 1548 | v1 = POP; |
| 1459 | TOP = Felt (TOP, v1); | 1549 | TOP = Felt (TOP, v1); |
| 1550 | AFTER_POTENTIAL_GC (); | ||
| 1460 | } | 1551 | } |
| 1461 | break; | 1552 | break; |
| 1462 | } | 1553 | } |
| @@ -1464,36 +1555,46 @@ If the third argument is incorrect, Emacs may crash.") | |||
| 1464 | case Bmember: | 1555 | case Bmember: |
| 1465 | { | 1556 | { |
| 1466 | Lisp_Object v1; | 1557 | Lisp_Object v1; |
| 1558 | BEFORE_POTENTIAL_GC (); | ||
| 1467 | v1 = POP; | 1559 | v1 = POP; |
| 1468 | TOP = Fmember (TOP, v1); | 1560 | TOP = Fmember (TOP, v1); |
| 1561 | AFTER_POTENTIAL_GC (); | ||
| 1469 | break; | 1562 | break; |
| 1470 | } | 1563 | } |
| 1471 | 1564 | ||
| 1472 | case Bassq: | 1565 | case Bassq: |
| 1473 | { | 1566 | { |
| 1474 | Lisp_Object v1; | 1567 | Lisp_Object v1; |
| 1568 | BEFORE_POTENTIAL_GC (); | ||
| 1475 | v1 = POP; | 1569 | v1 = POP; |
| 1476 | TOP = Fassq (TOP, v1); | 1570 | TOP = Fassq (TOP, v1); |
| 1571 | AFTER_POTENTIAL_GC (); | ||
| 1477 | break; | 1572 | break; |
| 1478 | } | 1573 | } |
| 1479 | 1574 | ||
| 1480 | case Bnreverse: | 1575 | case Bnreverse: |
| 1576 | BEFORE_POTENTIAL_GC (); | ||
| 1481 | TOP = Fnreverse (TOP); | 1577 | TOP = Fnreverse (TOP); |
| 1578 | AFTER_POTENTIAL_GC (); | ||
| 1482 | break; | 1579 | break; |
| 1483 | 1580 | ||
| 1484 | case Bsetcar: | 1581 | case Bsetcar: |
| 1485 | { | 1582 | { |
| 1486 | Lisp_Object v1; | 1583 | Lisp_Object v1; |
| 1584 | BEFORE_POTENTIAL_GC (); | ||
| 1487 | v1 = POP; | 1585 | v1 = POP; |
| 1488 | TOP = Fsetcar (TOP, v1); | 1586 | TOP = Fsetcar (TOP, v1); |
| 1587 | AFTER_POTENTIAL_GC (); | ||
| 1489 | break; | 1588 | break; |
| 1490 | } | 1589 | } |
| 1491 | 1590 | ||
| 1492 | case Bsetcdr: | 1591 | case Bsetcdr: |
| 1493 | { | 1592 | { |
| 1494 | Lisp_Object v1; | 1593 | Lisp_Object v1; |
| 1594 | BEFORE_POTENTIAL_GC (); | ||
| 1495 | v1 = POP; | 1595 | v1 = POP; |
| 1496 | TOP = Fsetcdr (TOP, v1); | 1596 | TOP = Fsetcdr (TOP, v1); |
| 1597 | AFTER_POTENTIAL_GC (); | ||
| 1497 | break; | 1598 | break; |
| 1498 | } | 1599 | } |
| 1499 | 1600 | ||
| @@ -1520,8 +1621,10 @@ If the third argument is incorrect, Emacs may crash.") | |||
| 1520 | } | 1621 | } |
| 1521 | 1622 | ||
| 1522 | case Bnconc: | 1623 | case Bnconc: |
| 1624 | BEFORE_POTENTIAL_GC (); | ||
| 1523 | DISCARD (1); | 1625 | DISCARD (1); |
| 1524 | TOP = Fnconc (2, &TOP); | 1626 | TOP = Fnconc (2, &TOP); |
| 1627 | AFTER_POTENTIAL_GC (); | ||
| 1525 | break; | 1628 | break; |
| 1526 | 1629 | ||
| 1527 | case Bnumberp: | 1630 | case Bnumberp: |