summaryrefslogtreecommitdiff
path: root/lang/spidermonkey/patches/patch-jsapi.h
blob: 899dbbc6a764bfdf43c7c3143b08aa2e4bf65e14 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$NetBSD: patch-jsapi.h,v 1.1 2015/09/08 18:53:46 joerg Exp $

Multiplication is safe, even if the input is negative. Left shift is not.

--- jsapi.h.orig	2015-09-03 12:07:45.000000000 +0000
+++ jsapi.h
@@ -103,7 +103,7 @@ JS_BEGIN_EXTERN_C
 #define JSVAL_INT_MAX           (JSVAL_INT_POW2(30) - 1)
 #define INT_FITS_IN_JSVAL(i)    ((jsuint)((i)+JSVAL_INT_MAX) <= 2*JSVAL_INT_MAX)
 #define JSVAL_TO_INT(v)         ((jsint)(v) >> 1)
-#define INT_TO_JSVAL(i)         (((jsval)(i) << 1) | JSVAL_INT)
+#define INT_TO_JSVAL(i)         (((jsval)(i) * 2) | JSVAL_INT)
 
 /* Convert between boolean and jsval. */
 #define JSVAL_TO_BOOLEAN(v)     ((JSBool)((v) >> JSVAL_TAGBITS))