branch: master commit 42e566c946db8fc8b170a13c3bdff60cbf2807b0 Author: Paul Eggert <egg...@cs.ucla.edu> Commit: Paul Eggert <egg...@cs.ucla.edu>
Port websocket to bleeding-edge 32-bit Emacs Problem reported by Stefan Monnier (Bug#31118). * packages/websocket/websocket.el (websocket-to-bytes): Do not assume that #xffffffff is a valid fixnum. --- packages/websocket/websocket.el | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/packages/websocket/websocket.el b/packages/websocket/websocket.el index 39a31c3..0533fb3 100644 --- a/packages/websocket/websocket.el +++ b/packages/websocket/websocket.el @@ -234,12 +234,9 @@ approximately 537M long." val nbytes)) (if (= nbytes 8) (progn - (let ((hi-32bits (lsh val -32)) - ;; Test for systems that don't have > 32 bits, and - ;; for those systems just return the value. - (low-32bits (if (= 0 (expt 2 32)) - val - (logand #xffffffff val)))) + (let* ((hi-32bits (lsh val -32)) + ;; This is just VAL on systems that don't have >= 32 bits. + (low-32bits (- val (lsh hi-32bits 32)))) (when (or (> hi-32bits 0) (> (lsh low-32bits -29) 0)) (signal 'websocket-frame-too-large val)) (bindat-pack `((:val vec 2 u32))