aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/jsifier.js2
-rw-r--r--src/library.js9
-rw-r--r--tests/runner.py7
3 files changed, 15 insertions, 3 deletions
diff --git a/src/jsifier.js b/src/jsifier.js
index b5ac1262..aadc021c 100644
--- a/src/jsifier.js
+++ b/src/jsifier.js
@@ -699,7 +699,7 @@ function JSify(data, functionsOnly, givenTypes, givenFunctions) {
makeFuncLineZyme('mathop', function(item) { with(item) {
for (var i = 1; i <= 4; i++) {
if (item['param'+i]) {
- item['ident'+i] = finalizeLLVMParameter(item['param'+i]);
+ item['ident'+i] = indexizeFunctions(finalizeLLVMParameter(item['param'+i]));
}
}
if (GUARD_SIGNS) {
diff --git a/src/library.js b/src/library.js
index 5ebd2c02..b4efd901 100644
--- a/src/library.js
+++ b/src/library.js
@@ -215,6 +215,9 @@ var Library = {
var i = 0;
do {
IHEAP[pdest+len+i] = IHEAP[psrc+i];
+#if SAFE_HEAP
+ SAFE_HEAP_ACCESS(pdest+len+i, 'i8', true);
+#endif
i ++;
} while (IHEAP[psrc+i-1] != 0);
return pdest;
@@ -224,7 +227,11 @@ var Library = {
var len = Pointer_stringify(pdest).length; // TODO: use strlen, but need dependencies system
var i = 0;
while(1) {
- if ((IHEAP[pdest+len+i] = IHEAP[psrc+i]) == 0) break;
+ IHEAP[pdest+len+i] = IHEAP[psrc+i];
+#if SAFE_HEAP
+ SAFE_HEAP_ACCESS(pdest+len+i, 'i8', true);
+#endif
+ if (IHEAP[pdest+len+i] == 0) break;
i ++;
if (i == num) {
IHEAP[pdest+len+i] = 0;
diff --git a/tests/runner.py b/tests/runner.py
index d8267d2e..a931ced9 100644
--- a/tests/runner.py
+++ b/tests/runner.py
@@ -606,10 +606,15 @@ if 'benchmark' not in sys.argv:
void *vp2 = (void*)fp2;
fp_t fpb2 = (fp_t)vp2;
printf("*%d,%d,%d,%d,%d,%d*\\n", fp(), fpb(), fp2(), fpb2(), globally1(), globally2());
+
+ fp_t t = calc1;
+ printf("*%d,%d", t == calc1, t == calc2);
+ t = calc2;
+ printf(",%d,%d*\\n", t == calc1, t == calc2);
return 0;
}
'''
- self.do_test(src, '*26,26,90,90,26,90*')
+ self.do_test(src, '*26,26,90,90,26,90*\n*1,0,0,1*')
def test_emptyclass(self):
src = '''