aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormax99x <max99x@gmail.com>2011-09-15 18:07:33 +0300
committermax99x <max99x@gmail.com>2011-09-15 18:07:33 +0300
commita39cbaf4f3d6da7122a83697d29e4ff3fc71ddfb (patch)
treee43d5702151d9e7bcf732956dd7f872bc90fb526
parentb06c356f6053b1cade5c6e73958ebc7b6cc58d4b (diff)
Fixed support for library-defined globals of non-struct types.
-rw-r--r--src/jsifier.js8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/jsifier.js b/src/jsifier.js
index 29942002..9a2a82c4 100644
--- a/src/jsifier.js
+++ b/src/jsifier.js
@@ -213,7 +213,13 @@ function JSify(data, functionsOnly, givenFunctions, givenGlobalVariables) {
LibraryManager.library[shortident].length &&
!BUILD_AS_SHARED_LIB) {
var val = LibraryManager.library[shortident];
- var padded = val.concat(makeEmptyStruct(item.type).slice(val.length));
+ var padding;
+ if (Runtime.isNumberType(item.type) || isPointerType(item.type)) {
+ padding = [item.type].concat(zeros(getNativeFieldSize(item.type)));
+ } else {
+ padding = makeEmptyStruct(item.type);
+ }
+ var padded = val.concat(padding.slice(val.length));
var js = item.ident + '=' + makePointer(JSON.stringify(padded), null, 'ALLOC_STATIC', item.type) + ';'
if (LibraryManager.library[shortident + '__postset']) {
js += '\n' + LibraryManager.library[shortident + '__postset'];