diff options
| author | Andrea Corallo | 2019-06-22 17:12:35 +0200 |
|---|---|---|
| committer | Andrea Corallo | 2020-01-01 11:33:43 +0100 |
| commit | a31a164ea0b75c6523346fb9cc05233e036596d3 (patch) | |
| tree | d2a3fa95f2025af88a48d4aa480fe66d0891769d /src | |
| parent | 8f0bb7d2647c0f5d4da5ec1af3ca1936ca42f221 (diff) | |
| download | emacs-a31a164ea0b75c6523346fb9cc05233e036596d3.tar.gz emacs-a31a164ea0b75c6523346fb9cc05233e036596d3.zip | |
imrpve macros
Diffstat (limited to 'src')
| -rw-r--r-- | src/comp.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/comp.c b/src/comp.c index 201ffa65597..c724f46a9b3 100644 --- a/src/comp.c +++ b/src/comp.c | |||
| @@ -125,15 +125,17 @@ along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. */ | |||
| 125 | /* Pop from the meta-stack, emit the call and push the result */ | 125 | /* Pop from the meta-stack, emit the call and push the result */ |
| 126 | 126 | ||
| 127 | #define EMIT_CALL_N(name, nargs) \ | 127 | #define EMIT_CALL_N(name, nargs) \ |
| 128 | POP##nargs; \ | 128 | do { \ |
| 129 | res = emit_call (name, comp.lisp_obj_type, nargs, args); \ | 129 | POP##nargs; \ |
| 130 | PUSH_RVAL (res); | 130 | res = emit_call (name, comp.lisp_obj_type, nargs, args); \ |
| 131 | PUSH_RVAL (res); \ | ||
| 132 | } while (0) | ||
| 131 | 133 | ||
| 132 | /* Generate appropriate case and emit call to function. */ | 134 | /* Generate appropriate case and emit call to function. */ |
| 133 | 135 | ||
| 134 | #define CASE_CALL_NARGS(name, nargs) \ | 136 | #define CASE_CALL_NARGS(name, nargs) \ |
| 135 | case B##name: \ | 137 | case B##name: \ |
| 136 | EMIT_CALL_N (STR(F##name), nargs) \ | 138 | EMIT_CALL_N (STR(F##name), nargs); \ |
| 137 | break | 139 | break |
| 138 | 140 | ||
| 139 | /* Emit calls to functions with prototype (ptrdiff_t nargs, Lisp_Object *args) | 141 | /* Emit calls to functions with prototype (ptrdiff_t nargs, Lisp_Object *args) |