Received: from mail.netbsd.org (mail.netbsd.org [199.233.217.200]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mail.netbsd.org", Issuer "Postmaster NetBSD.org" (verified OK)) by mollari.NetBSD.org (Postfix) with ESMTPS id 70DCF7A322 for ; Sun, 4 Dec 2016 12:41:50 +0000 (UTC) Received: by mail.netbsd.org (Postfix, from userid 605) id DDCB0855D0; Sun, 4 Dec 2016 12:41:49 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by mail.netbsd.org (Postfix) with ESMTP id 6E4A5855BC for ; Sun, 4 Dec 2016 12:41:49 +0000 (UTC) X-Virus-Scanned: amavisd-new at netbsd.org Received: from mail.netbsd.org ([127.0.0.1]) by localhost (mail.netbsd.org [127.0.0.1]) (amavisd-new, port 10025) with ESMTP id 6OnQOxzNitEP for ; Sun, 4 Dec 2016 12:41:48 +0000 (UTC) Received: from cvs.NetBSD.org (unknown [IPv6:2001:470:a085:999:28c:faff:fe03:5984]) by mail.netbsd.org (Postfix) with ESMTP id 170E784D04 for ; Sun, 4 Dec 2016 12:41:47 +0000 (UTC) Received: by cvs.NetBSD.org (Postfix, from userid 500) id 92FE7FBA6; Sun, 4 Dec 2016 12:41:47 +0000 (UTC) Content-Transfer-Encoding: 7bit Content-Type: multipart/mixed; boundary="_----------=_148085530750900" MIME-Version: 1.0 Date: Sun, 4 Dec 2016 12:41:47 +0000 From: "Martin Husemann" Subject: CVS commit: pkgsrc/www/netsurf To: pkgsrc-changes@NetBSD.org Reply-To: martin@netbsd.org X-Mailer: log_accum Message-Id: <20161204124147.92FE7FBA6@cvs.NetBSD.org> Sender: pkgsrc-changes-owner@NetBSD.org List-Id: pkgsrc-changes.NetBSD.org Precedence: bulk This is a multi-part message in MIME format. --_----------=_148085530750900 Content-Disposition: inline Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="US-ASCII" Module Name: pkgsrc Committed By: martin Date: Sun Dec 4 12:41:47 UTC 2016 Modified Files: pkgsrc/www/netsurf: distinfo Added Files: pkgsrc/www/netsurf/patches: patch-nsgenbind_src_nsgenbind-ast.c patch-nsgenbind_src_nsgenbind-ast.h patch-nsgenbind_src_nsgenbind-parser.y patch-nsgenbind_src_webidl-ast.c patch-nsgenbind_src_webidl-ast.h patch-nsgenbind_src_webidl-parser.y Log Message: Apply upstream fix for a build issue on 64bit big endian machines To generate a diff of this commit: cvs rdiff -u -r1.7 -r1.8 pkgsrc/www/netsurf/distinfo cvs rdiff -u -r0 -r1.1 \ pkgsrc/www/netsurf/patches/patch-nsgenbind_src_nsgenbind-ast.c \ pkgsrc/www/netsurf/patches/patch-nsgenbind_src_nsgenbind-ast.h \ pkgsrc/www/netsurf/patches/patch-nsgenbind_src_nsgenbind-parser.y \ pkgsrc/www/netsurf/patches/patch-nsgenbind_src_webidl-ast.c \ pkgsrc/www/netsurf/patches/patch-nsgenbind_src_webidl-ast.h \ pkgsrc/www/netsurf/patches/patch-nsgenbind_src_webidl-parser.y Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. --_----------=_148085530750900 Content-Disposition: inline Content-Length: 30032 Content-Transfer-Encoding: binary Content-Type: text/x-diff; charset=us-ascii Modified files: Index: pkgsrc/www/netsurf/distinfo diff -u pkgsrc/www/netsurf/distinfo:1.7 pkgsrc/www/netsurf/distinfo:1.8 --- pkgsrc/www/netsurf/distinfo:1.7 Sun Nov 20 13:02:14 2016 +++ pkgsrc/www/netsurf/distinfo Sun Dec 4 12:41:47 2016 @@ -1,4 +1,4 @@ -$NetBSD: distinfo,v 1.7 2016/11/20 13:02:14 leot Exp $ +$NetBSD: distinfo,v 1.8 2016/12/04 12:41:47 martin Exp $ SHA1 (netsurf-all-3.6.tar.gz) = d25345415b9b26343c22929280c48066302da916 RMD160 (netsurf-all-3.6.tar.gz) = 73b7768434b5365c912761837f7d6003c28fb84c @@ -6,3 +6,9 @@ SHA512 (netsurf-all-3.6.tar.gz) = 1b7dcc Size (netsurf-all-3.6.tar.gz) = 8403623 bytes SHA1 (patch-netsurf_utils_config.h) = de48304e3484a883509ea3ad92658788f7869041 SHA1 (patch-nsgenbind_src_Makefile) = 1798b84c28fbb9bbdaafe3f182fbd301f5438df1 +SHA1 (patch-nsgenbind_src_nsgenbind-ast.c) = 5931ab321f15dc9754b71545d40bac01274938f6 +SHA1 (patch-nsgenbind_src_nsgenbind-ast.h) = acae94b6386be7dbde190eb7218a25a622b4763b +SHA1 (patch-nsgenbind_src_nsgenbind-parser.y) = d16777ad3dde63ff4e00553103998326a1ad2903 +SHA1 (patch-nsgenbind_src_webidl-ast.c) = 09d8007e7e5a7b9799a721f180ee16b2cfbda0a9 +SHA1 (patch-nsgenbind_src_webidl-ast.h) = e01bf956b170ad53c60c993ec728d03d1b208e5b +SHA1 (patch-nsgenbind_src_webidl-parser.y) = 930e39c1efa0fb4c4d4d9737584f83250cbb4a8f Added files: Index: pkgsrc/www/netsurf/patches/patch-nsgenbind_src_nsgenbind-ast.c diff -u /dev/null pkgsrc/www/netsurf/patches/patch-nsgenbind_src_nsgenbind-ast.c:1.1 --- /dev/null Sun Dec 4 12:41:47 2016 +++ pkgsrc/www/netsurf/patches/patch-nsgenbind_src_nsgenbind-ast.c Sun Dec 4 12:41:47 2016 @@ -0,0 +1,48 @@ +$NetBSD: patch-nsgenbind_src_nsgenbind-ast.c,v 1.1 2016/12/04 12:41:47 martin Exp $ + +Backport of upstream: + +commit 3b3b926d7fb92361b1e8eed2efb351c32cb7bfaa +Author: Vincent Sanders +Date: Sun Nov 27 14:17:11 2016 +0000 + + restructure AST node creation to avoid casts + + This changes Abstract Syntax Tree node creation for both webidl and + genbind syntax tress. If a node is to be created with a numeric value + instead of a pointer a separate API is now used instead of casting + through void. + + This fixes parsing and AST building on big endian 64bit platforms + where casting through void, which is completely undefined behaviour, + generates different and non-functioning code. The solution in this + patch is properly portable and correct without relying on casting at + all. + + Thanks to James Clarke for the original debugging + and patch demonstrating how to work round the bug. + +diff --git a/src/nsgenbind-ast.c b/src/nsgenbind-ast.c +index 49732a0..f78fe26 100644 +--- nsgenbind/src/nsgenbind-ast.c.orig ++++ nsgenbind/src/nsgenbind-ast.c +@@ -132,6 +132,19 @@ genbind_new_node(enum genbind_node_type type, struct genbind_node *l, void *r) + 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 Index: pkgsrc/www/netsurf/patches/patch-nsgenbind_src_nsgenbind-ast.h diff -u /dev/null pkgsrc/www/netsurf/patches/patch-nsgenbind_src_nsgenbind-ast.h:1.1 --- /dev/null Sun Dec 4 12:41:47 2016 +++ pkgsrc/www/netsurf/patches/patch-nsgenbind_src_nsgenbind-ast.h Sun Dec 4 12:41:47 2016 @@ -0,0 +1,47 @@ +$NetBSD: patch-nsgenbind_src_nsgenbind-ast.h,v 1.1 2016/12/04 12:41:47 martin Exp $ + +Backport of upstream: + +commit 3b3b926d7fb92361b1e8eed2efb351c32cb7bfaa +Author: Vincent Sanders +Date: Sun Nov 27 14:17:11 2016 +0000 + + restructure AST node creation to avoid casts + + This changes Abstract Syntax Tree node creation for both webidl and + genbind syntax tress. If a node is to be created with a numeric value + instead of a pointer a separate API is now used instead of casting + through void. + + This fixes parsing and AST building on big endian 64bit platforms + where casting through void, which is completely undefined behaviour, + generates different and non-functioning code. The solution in this + patch is properly portable and correct without relying on casting at + all. + + Thanks to James Clarke for the original debugging + and patch demonstrating how to work round the bug. + +diff --git a/src/nsgenbind-ast.h b/src/nsgenbind-ast.h +index 49db23b..6fb7221 100644 +--- nsgenbind/src/nsgenbind-ast.h.orig ++++ nsgenbind/src/nsgenbind-ast.h +@@ -71,7 +71,18 @@ int genbind_parsefile(char *infilename, struct genbind_node **ast); + + 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); Index: pkgsrc/www/netsurf/patches/patch-nsgenbind_src_nsgenbind-parser.y diff -u /dev/null pkgsrc/www/netsurf/patches/patch-nsgenbind_src_nsgenbind-parser.y:1.1 --- /dev/null Sun Dec 4 12:41:47 2016 +++ pkgsrc/www/netsurf/patches/patch-nsgenbind_src_nsgenbind-parser.y Sun Dec 4 12:41:47 2016 @@ -0,0 +1,93 @@ +$NetBSD: patch-nsgenbind_src_nsgenbind-parser.y,v 1.1 2016/12/04 12:41:47 martin Exp $ + +Backport of upstream: + +commit 3b3b926d7fb92361b1e8eed2efb351c32cb7bfaa +Author: Vincent Sanders +Date: Sun Nov 27 14:17:11 2016 +0000 + + restructure AST node creation to avoid casts + + This changes Abstract Syntax Tree node creation for both webidl and + genbind syntax tress. If a node is to be created with a numeric value + instead of a pointer a separate API is now used instead of casting + through void. + + This fixes parsing and AST building on big endian 64bit platforms + where casting through void, which is completely undefined behaviour, + generates different and non-functioning code. The solution in this + patch is properly portable and correct without relying on casting at + all. + + Thanks to James Clarke for the original debugging + and patch demonstrating how to work round the bug. + +diff --git a/src/nsgenbind-parser.y b/src/nsgenbind-parser.y +index c6b9a74..fd41c37 100644 +--- nsgenbind/src/nsgenbind-parser.y.orig ++++ nsgenbind/src/nsgenbind-parser.y +@@ -138,17 +138,17 @@ add_method(struct genbind_node **genbind_ast, + } + + 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 @@ BindingArg: + { + $$ = 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 @@ ClassArg: + 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 @@ ClassArg: + { + $$ = 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)); + } + ; + Index: pkgsrc/www/netsurf/patches/patch-nsgenbind_src_webidl-ast.c diff -u /dev/null pkgsrc/www/netsurf/patches/patch-nsgenbind_src_webidl-ast.c:1.1 --- /dev/null Sun Dec 4 12:41:47 2016 +++ pkgsrc/www/netsurf/patches/patch-nsgenbind_src_webidl-ast.c Sun Dec 4 12:41:47 2016 @@ -0,0 +1,59 @@ +$NetBSD: patch-nsgenbind_src_webidl-ast.c,v 1.1 2016/12/04 12:41:47 martin Exp $ + +Backport of upstream: + +commit 3b3b926d7fb92361b1e8eed2efb351c32cb7bfaa +Author: Vincent Sanders +Date: Sun Nov 27 14:17:11 2016 +0000 + + restructure AST node creation to avoid casts + + This changes Abstract Syntax Tree node creation for both webidl and + genbind syntax tress. If a node is to be created with a numeric value + instead of a pointer a separate API is now used instead of casting + through void. + + This fixes parsing and AST building on big endian 64bit platforms + where casting through void, which is completely undefined behaviour, + generates different and non-functioning code. The solution in this + patch is properly portable and correct without relying on casting at + all. + + Thanks to James Clarke for the original debugging + and patch demonstrating how to work round the bug. + +diff --git a/src/webidl-ast.c b/src/webidl-ast.c +index 0d908ce..a1133e3 100644 +--- nsgenbind/src/webidl-ast.c.orig ++++ nsgenbind/src/webidl-ast.c +@@ -120,6 +120,7 @@ webidl_node_add(struct webidl_node *node, struct webidl_node *list) + + + 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 @@ webidl_node_new(enum webidl_node_type type, + 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; + } + Index: pkgsrc/www/netsurf/patches/patch-nsgenbind_src_webidl-ast.h diff -u /dev/null pkgsrc/www/netsurf/patches/patch-nsgenbind_src_webidl-ast.h:1.1 --- /dev/null Sun Dec 4 12:41:47 2016 +++ pkgsrc/www/netsurf/patches/patch-nsgenbind_src_webidl-ast.h Sun Dec 4 12:41:47 2016 @@ -0,0 +1,46 @@ +$NetBSD: patch-nsgenbind_src_webidl-ast.h,v 1.1 2016/12/04 12:41:47 martin Exp $ + +Backport of upstream: + +commit 3b3b926d7fb92361b1e8eed2efb351c32cb7bfaa +Author: Vincent Sanders +Date: Sun Nov 27 14:17:11 2016 +0000 + + restructure AST node creation to avoid casts + + This changes Abstract Syntax Tree node creation for both webidl and + genbind syntax tress. If a node is to be created with a numeric value + instead of a pointer a separate API is now used instead of casting + through void. + + This fixes parsing and AST building on big endian 64bit platforms + where casting through void, which is completely undefined behaviour, + generates different and non-functioning code. The solution in this + patch is properly portable and correct without relying on casting at + all. + + Thanks to James Clarke for the original debugging + and patch demonstrating how to work round the bug. + +diff --git a/src/webidl-ast.h b/src/webidl-ast.h +index bd9b313..fad070b 100644 +--- nsgenbind/src/webidl-ast.h.orig ++++ nsgenbind/src/webidl-ast.h +@@ -92,8 +92,17 @@ typedef int (webidl_callback_t)(struct webidl_node *node, void *ctx); + + 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); Index: pkgsrc/www/netsurf/patches/patch-nsgenbind_src_webidl-parser.y diff -u /dev/null pkgsrc/www/netsurf/patches/patch-nsgenbind_src_webidl-parser.y:1.1 --- /dev/null Sun Dec 4 12:41:47 2016 +++ pkgsrc/www/netsurf/patches/patch-nsgenbind_src_webidl-parser.y Sun Dec 4 12:41:47 2016 @@ -0,0 +1,352 @@ +$NetBSD: patch-nsgenbind_src_webidl-parser.y,v 1.1 2016/12/04 12:41:47 martin Exp $ + +Backport of upstream: + +commit 3b3b926d7fb92361b1e8eed2efb351c32cb7bfaa +Author: Vincent Sanders +Date: Sun Nov 27 14:17:11 2016 +0000 + + restructure AST node creation to avoid casts + + This changes Abstract Syntax Tree node creation for both webidl and + genbind syntax tress. If a node is to be created with a numeric value + instead of a pointer a separate API is now used instead of casting + through void. + + This fixes parsing and AST building on big endian 64bit platforms + where casting through void, which is completely undefined behaviour, + generates different and non-functioning code. The solution in this + patch is properly portable and correct without relying on casting at + all. + + Thanks to James Clarke for the original debugging + and patch demonstrating how to work round the bug. + +diff --git a/src/webidl-parser.y b/src/webidl-parser.y +index ec3309c..0e46b17 100644 +--- nsgenbind/src/webidl-parser.y.orig ++++ nsgenbind/src/webidl-parser.y +@@ -735,9 +735,9 @@ ConstValue: + | + 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 @@ ConstValue: + 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 @@ Attribute: + + /* 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 @@ StaticMemberRest: + { + 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 @@ StaticMemberRest: + 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 @@ Specials: + 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 @@ Special: + /* 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 @@ SingleType: + 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 @@ NonAnyType: + | + 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 @@ ConstType: + 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 @@ PrimitiveType: + | + 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 @@ PrimitiveType: + 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 @@ UnrestrictedFloatType: + 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 @@ FloatType: + 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 @@ UnsignedIntegerType: + 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 @@ ReturnType: + 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); + } + --_----------=_148085530750900--