From 7c77c3f661be0c8fe15358f44b1cb974bf172941 Mon Sep 17 00:00:00 2001 From: Vincent Sanders Date: Sun, 27 Nov 2016 15:24:47 +0000 Subject: Updates for debian 3.6-3 upload --- patches/fix-nsgenbind-be.patch | 489 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 489 insertions(+) create mode 100644 patches/fix-nsgenbind-be.patch (limited to 'patches/fix-nsgenbind-be.patch') diff --git a/patches/fix-nsgenbind-be.patch b/patches/fix-nsgenbind-be.patch new file mode 100644 index 0000000..d583bf6 --- /dev/null +++ b/patches/fix-nsgenbind-be.patch @@ -0,0 +1,489 @@ +--- a/nsgenbind/src/nsgenbind-ast.c ++++ b/nsgenbind/src/nsgenbind-ast.c +@@ -132,6 +132,19 @@ + return nn; + } + ++struct genbind_node * ++genbind_new_number_node(enum genbind_node_type type, ++ struct genbind_node *l, ++ int number) ++{ ++ struct genbind_node *nn; ++ nn = calloc(1, sizeof(struct genbind_node)); ++ nn->type = type; ++ nn->l = l; ++ nn->r.number = number; ++ return nn; ++} ++ + + /* exported interface defined in nsgenbind-ast.h */ + int +--- a/nsgenbind/src/nsgenbind-ast.h ++++ b/nsgenbind/src/nsgenbind-ast.h +@@ -71,7 +71,18 @@ + + char *genbind_strapp(char *a, char *b); + ++/** ++ * create a new node with value from pointer ++ */ + struct genbind_node *genbind_new_node(enum genbind_node_type type, struct genbind_node *l, void *r); ++ ++/** ++ * create a new number node ++ * ++ * Create a node with of number type ++ */ ++struct genbind_node *genbind_new_number_node(enum genbind_node_type type, struct genbind_node *l, int number); ++ + struct genbind_node *genbind_node_link(struct genbind_node *tgt, struct genbind_node *src); + + struct genbind_node *genbind_node_prepend(struct genbind_node *list, struct genbind_node *inst); +--- a/nsgenbind/src/nsgenbind-parser.y ++++ b/nsgenbind/src/nsgenbind-parser.y +@@ -138,17 +138,17 @@ + } + + location_node = genbind_new_node(GENBIND_NODE_TYPE_FILE, +- genbind_new_node(GENBIND_NODE_TYPE_LINE, +- cdata_node, +- (void *)lineno), ++ genbind_new_number_node(GENBIND_NODE_TYPE_LINE, ++ cdata_node, ++ lineno), + strdup(filename)); + + /* generate method node */ + method_node = genbind_new_node(GENBIND_NODE_TYPE_METHOD, + NULL, +- genbind_new_node(GENBIND_NODE_TYPE_METHOD_TYPE, ++ genbind_new_number_node(GENBIND_NODE_TYPE_METHOD_TYPE, + location_node, +- (void *)methodtype)); ++ methodtype)); + + class_node = genbind_node_find_type_ident(*genbind_ast, + NULL, +@@ -304,11 +304,11 @@ + { + $$ = genbind_new_node(GENBIND_NODE_TYPE_METHOD, + NULL, +- genbind_new_node(GENBIND_NODE_TYPE_METHOD_TYPE, ++ genbind_new_number_node(GENBIND_NODE_TYPE_METHOD_TYPE, + genbind_new_node(GENBIND_NODE_TYPE_CDATA, + NULL, + $2), +- (void *)$1)); ++ $1)); + } + ; + +@@ -568,11 +568,11 @@ + TOK_PROPERTY Modifiers TOK_IDENTIFIER ';' + { + $$ = genbind_new_node(GENBIND_NODE_TYPE_PROPERTY, NULL, +- genbind_new_node(GENBIND_NODE_TYPE_MODIFIER, ++ genbind_new_number_node(GENBIND_NODE_TYPE_MODIFIER, + genbind_new_node(GENBIND_NODE_TYPE_IDENT, + NULL, + $3), +- (void *)$2)); ++ $2)); + } + | + TOK_FLAGS ClassFlags ';' +@@ -584,11 +584,11 @@ + { + $$ = genbind_new_node(GENBIND_NODE_TYPE_METHOD, + NULL, +- genbind_new_node(GENBIND_NODE_TYPE_METHOD_TYPE, ++ genbind_new_number_node(GENBIND_NODE_TYPE_METHOD_TYPE, + genbind_new_node(GENBIND_NODE_TYPE_CDATA, + NULL, + $2), +- (void *)$1)); ++ $1)); + } + ; + +--- a/nsgenbind/src/webidl-ast.c ++++ b/nsgenbind/src/webidl-ast.c +@@ -120,6 +120,7 @@ + + + struct webidl_node * ++/* exported interface documented in webidl-ast.h */ + webidl_node_new(enum webidl_node_type type, + struct webidl_node *l, + void *r) +@@ -128,7 +129,21 @@ + nn = calloc(1, sizeof(struct webidl_node)); + nn->type = type; + nn->l = l; +- nn->r.text = r; ++ nn->r.value = r; ++ return nn; ++} ++ ++/* exported interface documented in webidl-ast.h */ ++struct webidl_node * ++webidl_new_number_node(enum webidl_node_type type, ++ struct webidl_node *l, ++ int number) ++{ ++ struct webidl_node *nn; ++ nn = calloc(1, sizeof(struct webidl_node)); ++ nn->type = type; ++ nn->l = l; ++ nn->r.number = number; + return nn; + } + +--- a/nsgenbind/src/webidl-ast.h ++++ b/nsgenbind/src/webidl-ast.h +@@ -92,8 +92,17 @@ + + int webidl_cmp_node_type(struct webidl_node *node, void *ctx); + ++/** ++ * create a new node with a pointer value ++ */ + struct webidl_node *webidl_node_new(enum webidl_node_type, struct webidl_node *l, void *r); + ++/** ++ * create a new node with an integer value ++ */ ++struct webidl_node *webidl_new_number_node(enum webidl_node_type type, struct webidl_node *l, int number); ++ ++ + void webidl_node_set(struct webidl_node *node, enum webidl_node_type type, void *r); + + struct webidl_node *webidl_node_prepend(struct webidl_node *list, struct webidl_node *node); +--- a/nsgenbind/src/webidl-parser.y ++++ b/nsgenbind/src/webidl-parser.y +@@ -735,9 +735,9 @@ + | + TOK_INT_LITERAL + { +- $$ = webidl_node_new(WEBIDL_NODE_TYPE_LITERAL_INT, +- NULL, +- (void *)$1); ++ $$ = webidl_new_number_node(WEBIDL_NODE_TYPE_LITERAL_INT, ++ NULL, ++ $1); + } + | + TOK_NULL_LITERAL +@@ -750,16 +750,16 @@ + BooleanLiteral: + TOK_TRUE + { +- $$ = webidl_node_new(WEBIDL_NODE_TYPE_LITERAL_BOOL, +- NULL, +- (void *)true); ++ $$ = webidl_new_number_node(WEBIDL_NODE_TYPE_LITERAL_BOOL, ++ NULL, ++ (int)true); + } + | + TOK_FALSE + { +- $$ = webidl_node_new(WEBIDL_NODE_TYPE_LITERAL_BOOL, +- NULL, +- (void *)false); ++ $$ = webidl_new_number_node(WEBIDL_NODE_TYPE_LITERAL_BOOL, ++ NULL, ++ (int)false); + } + ; + +@@ -846,16 +846,18 @@ + + /* deal with inherit modifier */ + if ($1) { +- attribute = webidl_node_new(WEBIDL_NODE_TYPE_MODIFIER, ++ attribute = webidl_new_number_node( ++ WEBIDL_NODE_TYPE_MODIFIER, + attribute, +- (void *)WEBIDL_TYPE_MODIFIER_INHERIT); ++ WEBIDL_TYPE_MODIFIER_INHERIT); + } + + /* deal with readonly modifier */ + if ($2) { +- attribute = webidl_node_new(WEBIDL_NODE_TYPE_MODIFIER, ++ attribute = webidl_new_number_node( ++ WEBIDL_NODE_TYPE_MODIFIER, + attribute, +- (void *)WEBIDL_TYPE_MODIFIER_READONLY); ++ WEBIDL_TYPE_MODIFIER_READONLY); + } + + $$ = webidl_node_new(WEBIDL_NODE_TYPE_ATTRIBUTE, +@@ -880,14 +882,16 @@ + { + struct webidl_node *attribute; + +- attribute = webidl_node_new(WEBIDL_NODE_TYPE_MODIFIER, +- $2, (void *)WEBIDL_TYPE_MODIFIER_STATIC); ++ attribute = webidl_new_number_node(WEBIDL_NODE_TYPE_MODIFIER, ++ $2, ++ WEBIDL_TYPE_MODIFIER_STATIC); + + /* deal with readonly modifier */ + if ($1) { +- attribute = webidl_node_new(WEBIDL_NODE_TYPE_MODIFIER, ++ attribute = webidl_new_number_node( ++ WEBIDL_NODE_TYPE_MODIFIER, + attribute, +- (void *)WEBIDL_TYPE_MODIFIER_READONLY); ++ WEBIDL_TYPE_MODIFIER_READONLY); + } + + $$ = webidl_node_new(WEBIDL_NODE_TYPE_ATTRIBUTE, +@@ -900,8 +904,9 @@ + struct webidl_node *operation; + + /* add static modifier */ +- operation = webidl_node_new(WEBIDL_NODE_TYPE_MODIFIER, +- $2, (void *)WEBIDL_TYPE_MODIFIER_STATIC); ++ operation = webidl_new_number_node(WEBIDL_NODE_TYPE_MODIFIER, ++ $2, ++ WEBIDL_TYPE_MODIFIER_STATIC); + + /* put return type on the operation */ + operation = webidl_node_prepend($1, operation); +@@ -1015,16 +1020,16 @@ + Special: + TOK_GETTER + { +- $$ = webidl_node_new(WEBIDL_NODE_TYPE_SPECIAL, +- NULL, +- (void *)WEBIDL_TYPE_SPECIAL_GETTER); ++ $$ = webidl_new_number_node(WEBIDL_NODE_TYPE_SPECIAL, ++ NULL, ++ WEBIDL_TYPE_SPECIAL_GETTER); + } + | + TOK_SETTER + { +- $$ = webidl_node_new(WEBIDL_NODE_TYPE_SPECIAL, +- NULL, +- (void *)WEBIDL_TYPE_SPECIAL_SETTER); ++ $$ = webidl_new_number_node(WEBIDL_NODE_TYPE_SPECIAL, ++ NULL, ++ WEBIDL_TYPE_SPECIAL_SETTER); + } + | + TOK_CREATOR +@@ -1032,23 +1037,23 @@ + /* second edition removed this special but the + * specifications still use it! + */ +- $$ = webidl_node_new(WEBIDL_NODE_TYPE_SPECIAL, +- NULL, +- (void *)WEBIDL_TYPE_SPECIAL_CREATOR); ++ $$ = webidl_new_number_node(WEBIDL_NODE_TYPE_SPECIAL, ++ NULL, ++ WEBIDL_TYPE_SPECIAL_CREATOR); + } + | + TOK_DELETER + { +- $$ = webidl_node_new(WEBIDL_NODE_TYPE_SPECIAL, +- NULL, +- (void *)WEBIDL_TYPE_SPECIAL_DELETER); ++ $$ = webidl_new_number_node(WEBIDL_NODE_TYPE_SPECIAL, ++ NULL, ++ WEBIDL_TYPE_SPECIAL_DELETER); + } + | + TOK_LEGACYCALLER + { +- $$ = webidl_node_new(WEBIDL_NODE_TYPE_SPECIAL, +- NULL, +- (void *)WEBIDL_TYPE_SPECIAL_LEGACYCALLER); ++ $$ = webidl_new_number_node(WEBIDL_NODE_TYPE_SPECIAL, ++ NULL, ++ WEBIDL_TYPE_SPECIAL_LEGACYCALLER); + } + ; + +@@ -1679,8 +1684,9 @@ + TOK_ANY TypeSuffixStartingWithArray + { + /* todo deal with TypeSuffixStartingWithArray */ +- $$ = webidl_node_new(WEBIDL_NODE_TYPE_TYPE_BASE, +- NULL, (void *)WEBIDL_TYPE_ANY); ++ $$ = webidl_new_number_node(WEBIDL_NODE_TYPE_TYPE_BASE, ++ NULL, ++ WEBIDL_TYPE_ANY); + } + ; + +@@ -1742,29 +1748,39 @@ + | + TOK_STRING TypeSuffix + { +- $$ = webidl_node_new(WEBIDL_NODE_TYPE_TYPE_BASE, $2, (void *)WEBIDL_TYPE_STRING); ++ $$ = webidl_new_number_node(WEBIDL_NODE_TYPE_TYPE_BASE, ++ $2, ++ WEBIDL_TYPE_STRING); + } + | + TOK_IDENTIFIER TypeSuffix + { + struct webidl_node *type; +- type = webidl_node_new(WEBIDL_NODE_TYPE_TYPE_BASE, $2, (void *)WEBIDL_TYPE_USER); ++ type = webidl_new_number_node(WEBIDL_NODE_TYPE_TYPE_BASE, ++ $2, ++ WEBIDL_TYPE_USER); + $$ = webidl_node_new(WEBIDL_NODE_TYPE_IDENT, type, $1); + } + | + TOK_SEQUENCE '<' Type '>' Null + { +- $$ = webidl_node_new(WEBIDL_NODE_TYPE_TYPE_BASE, $3, (void *)WEBIDL_TYPE_SEQUENCE); ++ $$ = webidl_new_number_node(WEBIDL_NODE_TYPE_TYPE_BASE, ++ $3, ++ WEBIDL_TYPE_SEQUENCE); + } + | + TOK_OBJECT TypeSuffix + { +- $$ = webidl_node_new(WEBIDL_NODE_TYPE_TYPE_BASE, $2, (void *)WEBIDL_TYPE_OBJECT); ++ $$ = webidl_new_number_node(WEBIDL_NODE_TYPE_TYPE_BASE, ++ $2, ++ WEBIDL_TYPE_OBJECT); + } + | + TOK_DATE TypeSuffix + { +- $$ = webidl_node_new(WEBIDL_NODE_TYPE_TYPE_BASE, $2, (void *)WEBIDL_TYPE_DATE); ++ $$ = webidl_new_number_node(WEBIDL_NODE_TYPE_TYPE_BASE, ++ $2, ++ WEBIDL_TYPE_DATE); + } + ; + +@@ -1778,7 +1794,9 @@ + TOK_IDENTIFIER Null + { + struct webidl_node *type; +- type = webidl_node_new(WEBIDL_NODE_TYPE_TYPE_BASE, NULL, (void *)WEBIDL_TYPE_USER); ++ type = webidl_new_number_node(WEBIDL_NODE_TYPE_TYPE_BASE, ++ NULL, ++ WEBIDL_TYPE_USER); + type = webidl_node_new(WEBIDL_NODE_TYPE_IDENT, type, $1); + $$ = webidl_node_new(WEBIDL_NODE_TYPE_TYPE, NULL, type); + } +@@ -1793,17 +1811,23 @@ + | + TOK_BOOLEAN + { +- $$ = webidl_node_new(WEBIDL_NODE_TYPE_TYPE_BASE, NULL, (void *)WEBIDL_TYPE_BOOL); ++ $$ = webidl_new_number_node(WEBIDL_NODE_TYPE_TYPE_BASE, ++ NULL, ++ WEBIDL_TYPE_BOOL); + } + | + TOK_BYTE + { +- $$ = webidl_node_new(WEBIDL_NODE_TYPE_TYPE_BASE, NULL, (void *)WEBIDL_TYPE_BYTE); ++ $$ = webidl_new_number_node(WEBIDL_NODE_TYPE_TYPE_BASE, ++ NULL, ++ WEBIDL_TYPE_BYTE); + } + | + TOK_OCTET + { +- $$ = webidl_node_new(WEBIDL_NODE_TYPE_TYPE_BASE, NULL, (void *)WEBIDL_TYPE_OCTET); ++ $$ = webidl_new_number_node(WEBIDL_NODE_TYPE_TYPE_BASE, ++ NULL, ++ WEBIDL_TYPE_OCTET); + } + ; + +@@ -1811,9 +1835,9 @@ + UnrestrictedFloatType: + TOK_UNRESTRICTED FloatType + { +- $$ = webidl_node_new(WEBIDL_NODE_TYPE_MODIFIER, +- $2, +- (void *)WEBIDL_TYPE_MODIFIER_UNRESTRICTED); ++ $$ = webidl_new_number_node(WEBIDL_NODE_TYPE_MODIFIER, ++ $2, ++ WEBIDL_TYPE_MODIFIER_UNRESTRICTED); + } + | + FloatType +@@ -1823,12 +1847,16 @@ + FloatType: + TOK_FLOAT + { +- $$ = webidl_node_new(WEBIDL_NODE_TYPE_TYPE_BASE, NULL, (void *)WEBIDL_TYPE_FLOAT); ++ $$ = webidl_new_number_node(WEBIDL_NODE_TYPE_TYPE_BASE, ++ NULL, ++ WEBIDL_TYPE_FLOAT); + } + | + TOK_DOUBLE + { +- $$ = webidl_node_new(WEBIDL_NODE_TYPE_TYPE_BASE, NULL, (void *)WEBIDL_TYPE_DOUBLE); ++ $$ = webidl_new_number_node(WEBIDL_NODE_TYPE_TYPE_BASE, ++ NULL, ++ WEBIDL_TYPE_DOUBLE); + } + ; + +@@ -1836,9 +1864,9 @@ + UnsignedIntegerType: + TOK_UNSIGNED IntegerType + { +- $$ = webidl_node_new(WEBIDL_NODE_TYPE_MODIFIER, +- $2, +- (void *)WEBIDL_TYPE_MODIFIER_UNSIGNED); ++ $$ = webidl_new_number_node(WEBIDL_NODE_TYPE_MODIFIER, ++ $2, ++ WEBIDL_TYPE_MODIFIER_UNSIGNED); + } + | + IntegerType +@@ -1848,15 +1876,21 @@ + IntegerType: + TOK_SHORT + { +- $$ = webidl_node_new(WEBIDL_NODE_TYPE_TYPE_BASE, NULL, (void *)WEBIDL_TYPE_SHORT); ++ $$ = webidl_new_number_node(WEBIDL_NODE_TYPE_TYPE_BASE, ++ NULL, ++ WEBIDL_TYPE_SHORT); + } + | + TOK_LONG OptionalLong + { + if ($2) { +- $$ = webidl_node_new(WEBIDL_NODE_TYPE_TYPE_BASE, NULL, (void *)WEBIDL_TYPE_LONGLONG); ++ $$ = webidl_new_number_node(WEBIDL_NODE_TYPE_TYPE_BASE, ++ NULL, ++ WEBIDL_TYPE_LONGLONG); + } else { +- $$ = webidl_node_new(WEBIDL_NODE_TYPE_TYPE_BASE, NULL, (void *)WEBIDL_TYPE_LONG); ++ $$ = webidl_new_number_node(WEBIDL_NODE_TYPE_TYPE_BASE, ++ NULL, ++ WEBIDL_TYPE_LONG); + } + } + ; +@@ -1927,7 +1961,9 @@ + TOK_VOID + { + struct webidl_node *type; +- type = webidl_node_new(WEBIDL_NODE_TYPE_TYPE_BASE, NULL, (void *)WEBIDL_TYPE_VOID); ++ type = webidl_new_number_node(WEBIDL_NODE_TYPE_TYPE_BASE, ++ NULL, ++ WEBIDL_TYPE_VOID); + $$ = webidl_node_new(WEBIDL_NODE_TYPE_TYPE, NULL, type); + } + -- cgit v1.2.3