Mercurial > hg > xemacs-beta
diff src/bytecode.c @ 5432:46491edfd94a
Merge with trunk.
author | Mats Lidell <matsl@xemacs.org> |
---|---|
date | Sun, 07 Nov 2010 00:22:33 +0100 |
parents | 308d34e9f07d 9f738305f80f |
children | 8d29f1c4bb98 |
line wrap: on
line diff
--- a/src/bytecode.c Sun Nov 07 00:15:08 2010 +0100 +++ b/src/bytecode.c Sun Nov 07 00:22:33 2010 +0100 @@ -249,21 +249,28 @@ } static Lisp_Object -bytecode_nreverse (Lisp_Object list) +bytecode_nreverse (Lisp_Object sequence) { - REGISTER Lisp_Object prev = Qnil; - REGISTER Lisp_Object tail = list; - - while (!NILP (tail)) + if (LISTP (sequence)) { - REGISTER Lisp_Object next; - CHECK_CONS (tail); - next = XCDR (tail); - XCDR (tail) = prev; - prev = tail; - tail = next; + REGISTER Lisp_Object prev = Qnil; + REGISTER Lisp_Object tail = sequence; + + while (!NILP (tail)) + { + REGISTER Lisp_Object next; + CHECK_CONS (tail); + next = XCDR (tail); + XCDR (tail) = prev; + prev = tail; + tail = next; + } + return prev; } - return prev; + else + { + return Fnreverse (sequence); + } }