Fix regressions.

- Adapted to changes in UTL
- Fixed detection of setters and getters.
This commit is contained in:
Oliver Buchtala 2014-03-05 01:10:55 +01:00
commit b5bc87667d
3 changed files with 25 additions and 7 deletions

View file

@ -78,6 +78,7 @@ SWIG_JSC_FromCharPtrAndSize(JSContextRef context, const char* carray, size_t siz
SWIG_AsCharPtrAndSize, SWIG_AsCharPtrAndSize,
SWIG_FromCharPtrAndSize, SWIG_FromCharPtrAndSize,
SWIG_CharPtrLen, SWIG_CharPtrLen,
SWIG_CharBufLen,
SWIG_NewCopyCharArray, SWIG_NewCopyCharArray,
SWIG_DeleteCharArray, SWIG_DeleteCharArray,
FragLimits, CHAR_MIN, CHAR_MAX) FragLimits, CHAR_MIN, CHAR_MAX)
@ -167,6 +168,7 @@ SWIG_AsVal_dec(Char)(SWIG_Object obj, Char *val)
SWIG_AsCharPtrAndSize, SWIG_AsCharPtrAndSize,
SWIG_FromCharPtrAndSize, SWIG_FromCharPtrAndSize,
SWIG_CharPtrLen, SWIG_CharPtrLen,
SWIG_CharBufLen,
SWIG_As##CharName##Ptr, SWIG_As##CharName##Ptr,
SWIG_From##CharName##Ptr, SWIG_From##CharName##Ptr,
SWIG_As##CharName##Array, SWIG_As##CharName##Array,

View file

@ -492,6 +492,14 @@ int JAVASCRIPT::top(Node *n) {
return SWIG_OK; return SWIG_OK;
} }
static const char *usage = (char *) "\
Javascript Options (available with -javascript)\n\
-jsc - creates a JavascriptCore extension \n\
-v8 - creates a v8 extension \n\
-node - creates a node.js extension \n\
-debug-codetemplates - generates information about the origin of code templates.\n";
/* --------------------------------------------------------------------- /* ---------------------------------------------------------------------
* main() * main()
* *
@ -522,6 +530,9 @@ void JAVASCRIPT::main(int argc, char *argv[]) {
} else if (strcmp(argv[i], "-debug-codetemplates") == 0) { } else if (strcmp(argv[i], "-debug-codetemplates") == 0) {
Swig_mark_arg(i); Swig_mark_arg(i);
js_template_enable_debug = true; js_template_enable_debug = true;
} else if (strcmp(argv[i], "-help") == 0) {
fputs(usage, stdout);
return;
} }
} }
} }
@ -704,14 +715,18 @@ int JSEmitter::emitWrapperFunction(Node *n) {
if (GetFlag(n, "allocate:smartpointeraccess")) { if (GetFlag(n, "allocate:smartpointeraccess")) {
is_static = false; is_static = false;
} }
bool is_setter = GetFlag(n, "wrap:issetter");
bool is_member = GetFlag(n, "ismember");
bool is_setter = GetFlag(n, "memberset") || GetFlag(n, "varset");
bool is_getter = GetFlag(n, "memberget") || GetFlag(n, "varget");
if (is_setter) { if (is_setter) {
bool is_member = GetFlag(n, "memberset");
ret = emitSetter(n, is_member, is_static); ret = emitSetter(n, is_member, is_static);
} else { } else if (is_getter) {
bool is_member = GetFlag(n, "memberget");
ret = emitGetter(n, is_member, is_static); ret = emitGetter(n, is_member, is_static);
} else {
Swig_print_node(n);
} }
} else { } else {
Printf(stderr, "Warning: unsupported wrapper function type\n"); Printf(stderr, "Warning: unsupported wrapper function type\n");
Swig_print_node(n); Swig_print_node(n);

View file

@ -15,7 +15,8 @@ CC = @CC@
# HACK: under OSX a g++ compiled interpreter is seg-faulting when loading module libraries # HACK: under OSX a g++ compiled interpreter is seg-faulting when loading module libraries
# with 'c++' it works... probably some missing flags? # with 'c++' it works... probably some missing flags?
JSCXX = @JSINTERPRETERCXX@ JSCXX = @JSINTERPRETERCXX@
CFLAGS = @BOOST_CPPFLAGS@ @PLATFLAGS@ CFLAGS = @PLATCFLAGS@
CXXFLAGS = @BOOST_CPPFLAGS@ @PLATCXXFLAGS@
LINKFLAGS = @JSINTERPRETERLINKFLAGS@ LINKFLAGS = @JSINTERPRETERLINKFLAGS@
ROOT_DIR = @ROOT_DIR@ ROOT_DIR = @ROOT_DIR@
@ -47,10 +48,10 @@ JS_INTERPRETER_SRC = javascript.cxx js_shell.cxx $(JS_INTERPRETER_SRC_JSC) $(JS_
JS_INTERPRETER_OBJS = $(JS_INTERPRETER_SRC:.cxx=.o) JS_INTERPRETER_OBJS = $(JS_INTERPRETER_SRC:.cxx=.o)
%.o: %.cxx %.o: %.cxx
$(JSCXX) $(JS_INTERPRETER_DEFINES) $(CFLAGS) $(JSINCLUDES) -o $@ -c $< $(JSCXX) $(JS_INTERPRETER_DEFINES) $(CXXFLAGS) $(JSINCLUDES) -o $@ -c $<
javascript: $(JS_INTERPRETER_OBJS) javascript: $(JS_INTERPRETER_OBJS)
$(JSCXX) $^ $(CFLAGS) -o javascript $(JSDYNAMICLINKING) $(LINKFLAGS) $(JSCXX) $^ $(CXXFLAGS) -o javascript $(JSDYNAMICLINKING) $(LINKFLAGS)
clean: clean:
rm -f *.o rm -f *.o