netsurf: branch master updated. release/3.6-45-ga76a369
by NetSurf Browser Project
Gitweb links:
...log http://git.netsurf-browser.org/netsurf.git/shortlog/a76a36915c7d348582f90...
...commit http://git.netsurf-browser.org/netsurf.git/commit/a76a36915c7d348582f9056...
...tree http://git.netsurf-browser.org/netsurf.git/tree/a76a36915c7d348582f905629...
The branch, master has been updated
via a76a36915c7d348582f905629fa0840a88b02edb (commit)
from c4b8857789e3f79a2ae0f7abe108999bf323b01a (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commitdiff http://git.netsurf-browser.org/netsurf.git/commit/?id=a76a36915c7d348582f...
commit a76a36915c7d348582f905629fa0840a88b02edb
Author: Chris Young <chris(a)unsatisfactorysoftware.co.uk>
Commit: Chris Young <chris(a)unsatisfactorysoftware.co.uk>
Ensure the memory for the mem-handler interrupt is allocated
diff --git a/frontends/amiga/memory.c b/frontends/amiga/memory.c
index abf849d..880131a 100755
--- a/frontends/amiga/memory.c
+++ b/frontends/amiga/memory.c
@@ -74,6 +74,7 @@ static ASM ULONG ami_memory_handler(REG(a0, struct MemHandlerData *mhd), REG(a1,
struct Interrupt *ami_memory_init(void)
{
struct Interrupt *memhandler = malloc(sizeof(struct Interrupt));
+ if(memhandler == NULL) return NULL; // we're screwed
memhandler->is_Node.ln_Pri = 1;
memhandler->is_Node.ln_Name = "NetSurf slab memory handler";
@@ -86,8 +87,10 @@ struct Interrupt *ami_memory_init(void)
void ami_memory_fini(struct Interrupt *memhandler)
{
- RemMemHandler(memhandler);
- free(memhandler);
+ if(memhandler != NULL) {
+ RemMemHandler(memhandler);
+ free(memhandler);
+ }
}
#endif
-----------------------------------------------------------------------
Summary of changes:
frontends/amiga/memory.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/frontends/amiga/memory.c b/frontends/amiga/memory.c
index abf849d..880131a 100755
--- a/frontends/amiga/memory.c
+++ b/frontends/amiga/memory.c
@@ -74,6 +74,7 @@ static ASM ULONG ami_memory_handler(REG(a0, struct MemHandlerData *mhd), REG(a1,
struct Interrupt *ami_memory_init(void)
{
struct Interrupt *memhandler = malloc(sizeof(struct Interrupt));
+ if(memhandler == NULL) return NULL; // we're screwed
memhandler->is_Node.ln_Pri = 1;
memhandler->is_Node.ln_Name = "NetSurf slab memory handler";
@@ -86,8 +87,10 @@ struct Interrupt *ami_memory_init(void)
void ami_memory_fini(struct Interrupt *memhandler)
{
- RemMemHandler(memhandler);
- free(memhandler);
+ if(memhandler != NULL) {
+ RemMemHandler(memhandler);
+ free(memhandler);
+ }
}
#endif
--
NetSurf Browser
6 years, 9 months
netsurf: branch master updated. release/3.6-44-gc4b8857
by NetSurf Browser Project
Gitweb links:
...log http://git.netsurf-browser.org/netsurf.git/shortlog/c4b8857789e3f79a2ae0f...
...commit http://git.netsurf-browser.org/netsurf.git/commit/c4b8857789e3f79a2ae0f7a...
...tree http://git.netsurf-browser.org/netsurf.git/tree/c4b8857789e3f79a2ae0f7abe...
The branch, master has been updated
via c4b8857789e3f79a2ae0f7abe108999bf323b01a (commit)
via 20432237883a04677f30f1758979fa0a4b9111e3 (commit)
from f8f802cda5f54c0c2b1acd51efc08aa7d4afad1b (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commitdiff http://git.netsurf-browser.org/netsurf.git/commit/?id=c4b8857789e3f79a2ae...
commit c4b8857789e3f79a2ae0f7abe108999bf323b01a
Author: Chris Young <chris(a)unsatisfactorysoftware.co.uk>
Commit: Chris Young <chris(a)unsatisfactorysoftware.co.uk>
Add low memory handler to purge unused slabs on OS3
TODO: find some way to purge NetSurf's memory cache safely from another process
diff --git a/frontends/amiga/gui.c b/frontends/amiga/gui.c
index e5b5c59..6dca47a 100644
--- a/frontends/amiga/gui.c
+++ b/frontends/amiga/gui.c
@@ -5543,6 +5543,11 @@ int main(int argc, char** argv)
/* Open splash window */
Object *splash_window = ami_gui_splash_open();
+#ifndef __amigaos4__
+ /* OS3 low memory handler */
+ struct Interupt *memhandler = ami_memory_init();
+#endif
+
ami_object_init();
if (ami_open_resources() == false) { /* alloc message ports */
@@ -5743,6 +5748,11 @@ int main(int argc, char** argv)
ami_object_fini();
ami_bitmap_fini();
+#ifndef __amigaos4__
+ /* OS3 low memory handler */
+ ami_memory_fini(memhandler);
+#endif
+
LOG("Closing screen");
ami_gui_close_screen(scrn, locked_screen, FALSE);
if(nsscreentitle) FreeVec(nsscreentitle);
diff --git a/frontends/amiga/memory.c b/frontends/amiga/memory.c
index d86f73d..abf849d 100755
--- a/frontends/amiga/memory.c
+++ b/frontends/amiga/memory.c
@@ -17,8 +17,11 @@
*/
#ifndef __amigaos4__
+#include <proto/exec.h>
+#include <exec/interrupts.h>
#include <stdlib.h>
#include "amiga/memory.h"
+#include "amiga/os3support.h"
#include "utils/log.h"
ULONG __slab_max_size = 2048; /* Enable clib2's slab allocator */
@@ -60,5 +63,32 @@ void ami_memory_slab_dump(void)
{
__get_slab_usage(ami_memory_slab_callback);
}
+
+static ASM ULONG ami_memory_handler(REG(a0, struct MemHandlerData *mhd), REG(a1, void *userdata), REG(a6, struct ExecBase *execbase))
+{
+ __free_unused_slabs();
+
+ return MEM_ALL_DONE;
+}
+
+struct Interrupt *ami_memory_init(void)
+{
+ struct Interrupt *memhandler = malloc(sizeof(struct Interrupt));
+
+ memhandler->is_Node.ln_Pri = 1;
+ memhandler->is_Node.ln_Name = "NetSurf slab memory handler";
+ memhandler->is_Data = NULL;
+ memhandler->is_Code = (APTR)&ami_memory_handler;
+ AddMemHandler(memhandler);
+
+ return memhandler;
+}
+
+void ami_memory_fini(struct Interrupt *memhandler)
+{
+ RemMemHandler(memhandler);
+ free(memhandler);
+}
+
#endif
diff --git a/frontends/amiga/memory.h b/frontends/amiga/memory.h
index 3d92350..a87a3ea 100644
--- a/frontends/amiga/memory.h
+++ b/frontends/amiga/memory.h
@@ -57,9 +57,11 @@ void *ami_memory_clear_alloc(size_t size, UBYTE value);
#define ami_memory_itempool_free(p,i,s) FreePooled(p,i,s)
#endif
-/* clib2 slab allocator stats */
+/* clib2 slab allocator */
#ifndef __amigaos4__
void ami_memory_slab_dump(void);
+struct Interrupt *ami_memory_init(void);
+void ami_memory_fini(struct Interrupt *memhandler);
#endif
#endif //AMIGA_MEMORY_H
commitdiff http://git.netsurf-browser.org/netsurf.git/commit/?id=20432237883a04677f3...
commit 20432237883a04677f30f1758979fa0a4b9111e3
Author: Chris Young <chris(a)unsatisfactorysoftware.co.uk>
Commit: Chris Young <chris(a)unsatisfactorysoftware.co.uk>
Reduce frequency of diskfont open/close
diff --git a/frontends/amiga/font.c b/frontends/amiga/font.c
index d3b9c32..22a0f4a 100644
--- a/frontends/amiga/font.c
+++ b/frontends/amiga/font.c
@@ -115,6 +115,8 @@ void ami_font_fini(void)
{
if(nsoption_bool(bitmap_fonts) == false) {
ami_font_bullet_fini();
+ } else {
+ ami_font_diskfont_fini();
}
}
diff --git a/frontends/amiga/font_diskfont.c b/frontends/amiga/font_diskfont.c
index 313e992..8593f81 100644
--- a/frontends/amiga/font_diskfont.c
+++ b/frontends/amiga/font_diskfont.c
@@ -39,6 +39,9 @@
#define MAX_FONT_NAME_SIZE 33
+static plot_font_style_t *prev_fstyle = NULL;
+static struct TextFont *prev_font = NULL;
+
static struct TextFont *ami_font_bm_open(struct RastPort *rp, const plot_font_style_t *fstyle)
{
struct TextFont *bmfont = NULL;
@@ -46,6 +49,15 @@ static struct TextFont *ami_font_bm_open(struct RastPort *rp, const plot_font_st
char *fontname;
char font[MAX_FONT_NAME_SIZE];
+ if((prev_fstyle != NULL) && (prev_font != NULL) &&
+ (fstyle->family == prev_fstyle->family) &&
+ (fstyle->size == prev_fstyle->size) &&
+ (fstyle->flags == prev_fstyle->flags) &&
+ (fstyle->weight == prev_fstyle->weight)) {
+ LOG("(using current font)");
+ return prev_font;
+ }
+
if(rp == NULL) return NULL;
tattr.ta_Flags = 0;
@@ -87,16 +99,19 @@ static struct TextFont *ami_font_bm_open(struct RastPort *rp, const plot_font_st
tattr.ta_Name = font;
tattr.ta_YSize = fstyle->size / FONT_SIZE_SCALE;
LOG("font: %s/%d", tattr.ta_Name, tattr.ta_YSize);
+
+ if(prev_font != NULL) CloseFont(prev_font);
+
if((bmfont = OpenDiskFont(&tattr))) {
SetRPAttrs(rp, RPTAG_Font, bmfont, TAG_DONE);
}
- return bmfont;
-}
+ if(prev_fstyle != NULL) {
+ memcpy(prev_fstyle, fstyle, sizeof(plot_font_style_t));
+ prev_font = bmfont;
+ }
-static void ami_font_bm_close(struct TextFont *bmfont)
-{
- CloseFont(bmfont);
+ return bmfont;
}
static size_t ami_font_bm_convert_local_to_utf8_offset(const char *utf8string, size_t length, UWORD offset)
@@ -125,15 +140,12 @@ static nserror amiga_bm_nsfont_width(const plot_font_style_t *fstyle,
if(bmfont == NULL) return NSERROR_INVALID;
if(utf8_to_local_encoding(string, length, &localtext) != NSERROR_OK) {
- ami_font_bm_close(bmfont);
return NSERROR_INVALID;
}
*width = TextLength(glob->rp, localtext, (UWORD)strlen(localtext));
free(localtext);
- ami_font_bm_close(bmfont);
-
return NSERROR_OK;
}
@@ -164,7 +176,6 @@ static nserror amiga_bm_nsfont_position_in_string(const plot_font_style_t *fstyl
if(bmfont == NULL) return NSERROR_INVALID;
if(utf8_to_local_encoding(string, length, &localtext) != NSERROR_OK) {
- ami_font_bm_close(bmfont);
return NSERROR_INVALID;
}
@@ -174,7 +185,6 @@ static nserror amiga_bm_nsfont_position_in_string(const plot_font_style_t *fstyl
*actual_x = extent.te_Extent.MaxX;
free(localtext);
- ami_font_bm_close(bmfont);
return NSERROR_OK;
}
@@ -218,7 +228,6 @@ static nserror amiga_bm_nsfont_split(const plot_font_style_t *fstyle,
if(bmfont == NULL) return NSERROR_INVALID;
if(utf8_to_local_encoding(string, length, &localtext) != NSERROR_OK) {
- ami_font_bm_close(bmfont);
return NSERROR_INVALID;
}
@@ -252,7 +261,6 @@ static nserror amiga_bm_nsfont_split(const plot_font_style_t *fstyle,
}
free(localtext);
- ami_font_bm_close(bmfont);
return NSERROR_OK;
}
@@ -273,8 +281,6 @@ static ULONG amiga_bm_nsfont_text(struct RastPort *rp, const char *string, ULONG
free(localtext);
}
- ami_font_bm_close(bmfont);
-
return 0;
}
@@ -289,5 +295,14 @@ void ami_font_diskfont_init(void)
{
/* Set up table */
ami_nsfont = &ami_font_diskfont_table;
+
+ /* Alloc space to hold currently open font - doesn't matter if this fails */
+ prev_fstyle = calloc(1, sizeof(plot_font_style_t));
+}
+
+void ami_font_diskfont_fini(void)
+{
+ if(prev_font != NULL) CloseFont(prev_font);
+ if(prev_fstyle != NULL) free(prev_fstyle);
}
diff --git a/frontends/amiga/font_diskfont.h b/frontends/amiga/font_diskfont.h
index de19e94..1c891d2 100644
--- a/frontends/amiga/font_diskfont.h
+++ b/frontends/amiga/font_diskfont.h
@@ -19,5 +19,6 @@
#ifndef AMIGA_FONT_DISKFONT_H
#define AMIGA_FONT_DISKFONT_H
void ami_font_diskfont_init(void);
+void ami_font_diskfont_fini(void);
#endif
-----------------------------------------------------------------------
Summary of changes:
frontends/amiga/font.c | 2 ++
frontends/amiga/font_diskfont.c | 43 ++++++++++++++++++++++++++-------------
frontends/amiga/font_diskfont.h | 1 +
frontends/amiga/gui.c | 10 +++++++++
frontends/amiga/memory.c | 30 +++++++++++++++++++++++++++
frontends/amiga/memory.h | 4 +++-
6 files changed, 75 insertions(+), 15 deletions(-)
diff --git a/frontends/amiga/font.c b/frontends/amiga/font.c
index d3b9c32..22a0f4a 100644
--- a/frontends/amiga/font.c
+++ b/frontends/amiga/font.c
@@ -115,6 +115,8 @@ void ami_font_fini(void)
{
if(nsoption_bool(bitmap_fonts) == false) {
ami_font_bullet_fini();
+ } else {
+ ami_font_diskfont_fini();
}
}
diff --git a/frontends/amiga/font_diskfont.c b/frontends/amiga/font_diskfont.c
index 313e992..8593f81 100644
--- a/frontends/amiga/font_diskfont.c
+++ b/frontends/amiga/font_diskfont.c
@@ -39,6 +39,9 @@
#define MAX_FONT_NAME_SIZE 33
+static plot_font_style_t *prev_fstyle = NULL;
+static struct TextFont *prev_font = NULL;
+
static struct TextFont *ami_font_bm_open(struct RastPort *rp, const plot_font_style_t *fstyle)
{
struct TextFont *bmfont = NULL;
@@ -46,6 +49,15 @@ static struct TextFont *ami_font_bm_open(struct RastPort *rp, const plot_font_st
char *fontname;
char font[MAX_FONT_NAME_SIZE];
+ if((prev_fstyle != NULL) && (prev_font != NULL) &&
+ (fstyle->family == prev_fstyle->family) &&
+ (fstyle->size == prev_fstyle->size) &&
+ (fstyle->flags == prev_fstyle->flags) &&
+ (fstyle->weight == prev_fstyle->weight)) {
+ LOG("(using current font)");
+ return prev_font;
+ }
+
if(rp == NULL) return NULL;
tattr.ta_Flags = 0;
@@ -87,16 +99,19 @@ static struct TextFont *ami_font_bm_open(struct RastPort *rp, const plot_font_st
tattr.ta_Name = font;
tattr.ta_YSize = fstyle->size / FONT_SIZE_SCALE;
LOG("font: %s/%d", tattr.ta_Name, tattr.ta_YSize);
+
+ if(prev_font != NULL) CloseFont(prev_font);
+
if((bmfont = OpenDiskFont(&tattr))) {
SetRPAttrs(rp, RPTAG_Font, bmfont, TAG_DONE);
}
- return bmfont;
-}
+ if(prev_fstyle != NULL) {
+ memcpy(prev_fstyle, fstyle, sizeof(plot_font_style_t));
+ prev_font = bmfont;
+ }
-static void ami_font_bm_close(struct TextFont *bmfont)
-{
- CloseFont(bmfont);
+ return bmfont;
}
static size_t ami_font_bm_convert_local_to_utf8_offset(const char *utf8string, size_t length, UWORD offset)
@@ -125,15 +140,12 @@ static nserror amiga_bm_nsfont_width(const plot_font_style_t *fstyle,
if(bmfont == NULL) return NSERROR_INVALID;
if(utf8_to_local_encoding(string, length, &localtext) != NSERROR_OK) {
- ami_font_bm_close(bmfont);
return NSERROR_INVALID;
}
*width = TextLength(glob->rp, localtext, (UWORD)strlen(localtext));
free(localtext);
- ami_font_bm_close(bmfont);
-
return NSERROR_OK;
}
@@ -164,7 +176,6 @@ static nserror amiga_bm_nsfont_position_in_string(const plot_font_style_t *fstyl
if(bmfont == NULL) return NSERROR_INVALID;
if(utf8_to_local_encoding(string, length, &localtext) != NSERROR_OK) {
- ami_font_bm_close(bmfont);
return NSERROR_INVALID;
}
@@ -174,7 +185,6 @@ static nserror amiga_bm_nsfont_position_in_string(const plot_font_style_t *fstyl
*actual_x = extent.te_Extent.MaxX;
free(localtext);
- ami_font_bm_close(bmfont);
return NSERROR_OK;
}
@@ -218,7 +228,6 @@ static nserror amiga_bm_nsfont_split(const plot_font_style_t *fstyle,
if(bmfont == NULL) return NSERROR_INVALID;
if(utf8_to_local_encoding(string, length, &localtext) != NSERROR_OK) {
- ami_font_bm_close(bmfont);
return NSERROR_INVALID;
}
@@ -252,7 +261,6 @@ static nserror amiga_bm_nsfont_split(const plot_font_style_t *fstyle,
}
free(localtext);
- ami_font_bm_close(bmfont);
return NSERROR_OK;
}
@@ -273,8 +281,6 @@ static ULONG amiga_bm_nsfont_text(struct RastPort *rp, const char *string, ULONG
free(localtext);
}
- ami_font_bm_close(bmfont);
-
return 0;
}
@@ -289,5 +295,14 @@ void ami_font_diskfont_init(void)
{
/* Set up table */
ami_nsfont = &ami_font_diskfont_table;
+
+ /* Alloc space to hold currently open font - doesn't matter if this fails */
+ prev_fstyle = calloc(1, sizeof(plot_font_style_t));
+}
+
+void ami_font_diskfont_fini(void)
+{
+ if(prev_font != NULL) CloseFont(prev_font);
+ if(prev_fstyle != NULL) free(prev_fstyle);
}
diff --git a/frontends/amiga/font_diskfont.h b/frontends/amiga/font_diskfont.h
index de19e94..1c891d2 100644
--- a/frontends/amiga/font_diskfont.h
+++ b/frontends/amiga/font_diskfont.h
@@ -19,5 +19,6 @@
#ifndef AMIGA_FONT_DISKFONT_H
#define AMIGA_FONT_DISKFONT_H
void ami_font_diskfont_init(void);
+void ami_font_diskfont_fini(void);
#endif
diff --git a/frontends/amiga/gui.c b/frontends/amiga/gui.c
index e5b5c59..6dca47a 100644
--- a/frontends/amiga/gui.c
+++ b/frontends/amiga/gui.c
@@ -5543,6 +5543,11 @@ int main(int argc, char** argv)
/* Open splash window */
Object *splash_window = ami_gui_splash_open();
+#ifndef __amigaos4__
+ /* OS3 low memory handler */
+ struct Interupt *memhandler = ami_memory_init();
+#endif
+
ami_object_init();
if (ami_open_resources() == false) { /* alloc message ports */
@@ -5743,6 +5748,11 @@ int main(int argc, char** argv)
ami_object_fini();
ami_bitmap_fini();
+#ifndef __amigaos4__
+ /* OS3 low memory handler */
+ ami_memory_fini(memhandler);
+#endif
+
LOG("Closing screen");
ami_gui_close_screen(scrn, locked_screen, FALSE);
if(nsscreentitle) FreeVec(nsscreentitle);
diff --git a/frontends/amiga/memory.c b/frontends/amiga/memory.c
index d86f73d..abf849d 100755
--- a/frontends/amiga/memory.c
+++ b/frontends/amiga/memory.c
@@ -17,8 +17,11 @@
*/
#ifndef __amigaos4__
+#include <proto/exec.h>
+#include <exec/interrupts.h>
#include <stdlib.h>
#include "amiga/memory.h"
+#include "amiga/os3support.h"
#include "utils/log.h"
ULONG __slab_max_size = 2048; /* Enable clib2's slab allocator */
@@ -60,5 +63,32 @@ void ami_memory_slab_dump(void)
{
__get_slab_usage(ami_memory_slab_callback);
}
+
+static ASM ULONG ami_memory_handler(REG(a0, struct MemHandlerData *mhd), REG(a1, void *userdata), REG(a6, struct ExecBase *execbase))
+{
+ __free_unused_slabs();
+
+ return MEM_ALL_DONE;
+}
+
+struct Interrupt *ami_memory_init(void)
+{
+ struct Interrupt *memhandler = malloc(sizeof(struct Interrupt));
+
+ memhandler->is_Node.ln_Pri = 1;
+ memhandler->is_Node.ln_Name = "NetSurf slab memory handler";
+ memhandler->is_Data = NULL;
+ memhandler->is_Code = (APTR)&ami_memory_handler;
+ AddMemHandler(memhandler);
+
+ return memhandler;
+}
+
+void ami_memory_fini(struct Interrupt *memhandler)
+{
+ RemMemHandler(memhandler);
+ free(memhandler);
+}
+
#endif
diff --git a/frontends/amiga/memory.h b/frontends/amiga/memory.h
index 3d92350..a87a3ea 100644
--- a/frontends/amiga/memory.h
+++ b/frontends/amiga/memory.h
@@ -57,9 +57,11 @@ void *ami_memory_clear_alloc(size_t size, UBYTE value);
#define ami_memory_itempool_free(p,i,s) FreePooled(p,i,s)
#endif
-/* clib2 slab allocator stats */
+/* clib2 slab allocator */
#ifndef __amigaos4__
void ami_memory_slab_dump(void);
+struct Interrupt *ami_memory_init(void);
+void ami_memory_fini(struct Interrupt *memhandler);
#endif
#endif //AMIGA_MEMORY_H
--
NetSurf Browser
6 years, 9 months
packaging/debian: branch master updated. release/3.6-1-1-g7c77c3f
by NetSurf Browser Project
Gitweb links:
...log http://git.netsurf-browser.org/packaging/debian.git/shortlog/7c77c3f661be...
...commit http://git.netsurf-browser.org/packaging/debian.git/commit/7c77c3f661be0c...
...tree http://git.netsurf-browser.org/packaging/debian.git/tree/7c77c3f661be0c8f...
The branch, master has been updated
via 7c77c3f661be0c8fe15358f44b1cb974bf172941 (commit)
from 18ab605e5ae485cea171174f2c6e4f2883ab33a9 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commitdiff http://git.netsurf-browser.org/packaging/debian.git/commit/?id=7c77c3f661...
commit 7c77c3f661be0c8fe15358f44b1cb974bf172941
Author: Vincent Sanders <vince(a)kyllikki.org>
Commit: Vincent Sanders <vince(a)kyllikki.org>
Updates for debian 3.6-3 upload
diff --git a/changelog b/changelog
index 617ef20..ae4ef89 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,17 @@
+netsurf (3.6-3) unstable; urgency=medium
+
+ * Apply upstream patch fixing nsgenbind on BE architectures
+ * Re-enable duktape javascript engine on all architectures
+
+ -- Vincent Sanders <vince(a)debian.org> Sun, 27 Nov 2016 14:54:31 +0000
+
+netsurf (3.6-2) unstable; urgency=medium
+
+ * Apply upstream patch disabling duktape compilation on unsupported
+ architectures.
+
+ -- Vincent Sanders <vince(a)debian.org> Thu, 24 Nov 2016 22:24:09 +0000
+
netsurf (3.6-1) unstable; urgency=medium
* New upstream release
diff --git a/control b/control
index 0ea434f..7c55ac2 100644
--- a/control
+++ b/control
@@ -11,6 +11,7 @@ Vcs-Git: git://git.netsurf-browser.org/packaging/debian.git
Package: netsurf
Architecture: all
+Multi-Arch: foreign
Depends: ${misc:Depends}, netsurf-gtk
Provides: www-browser
Section: oldlibs
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);
+ }
+
diff --git a/patches/series b/patches/series
index 25a75e0..3b4893c 100644
--- a/patches/series
+++ b/patches/series
@@ -1,3 +1,4 @@
+fix-nsgenbind-be.patch
remove-favicon-link.patch
openssl-1.1.0.patch
set-netsurf-config.patch
-----------------------------------------------------------------------
Summary of changes:
changelog | 14 ++
control | 1 +
patches/fix-nsgenbind-be.patch | 489 ++++++++++++++++++++++++++++++++++++++++
patches/series | 1 +
4 files changed, 505 insertions(+)
create mode 100644 patches/fix-nsgenbind-be.patch
diff --git a/changelog b/changelog
index 617ef20..ae4ef89 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,17 @@
+netsurf (3.6-3) unstable; urgency=medium
+
+ * Apply upstream patch fixing nsgenbind on BE architectures
+ * Re-enable duktape javascript engine on all architectures
+
+ -- Vincent Sanders <vince(a)debian.org> Sun, 27 Nov 2016 14:54:31 +0000
+
+netsurf (3.6-2) unstable; urgency=medium
+
+ * Apply upstream patch disabling duktape compilation on unsupported
+ architectures.
+
+ -- Vincent Sanders <vince(a)debian.org> Thu, 24 Nov 2016 22:24:09 +0000
+
netsurf (3.6-1) unstable; urgency=medium
* New upstream release
diff --git a/control b/control
index 0ea434f..7c55ac2 100644
--- a/control
+++ b/control
@@ -11,6 +11,7 @@ Vcs-Git: git://git.netsurf-browser.org/packaging/debian.git
Package: netsurf
Architecture: all
+Multi-Arch: foreign
Depends: ${misc:Depends}, netsurf-gtk
Provides: www-browser
Section: oldlibs
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);
+ }
+
diff --git a/patches/series b/patches/series
index 25a75e0..3b4893c 100644
--- a/patches/series
+++ b/patches/series
@@ -1,3 +1,4 @@
+fix-nsgenbind-be.patch
remove-favicon-link.patch
openssl-1.1.0.patch
set-netsurf-config.patch
--
Debian Packaging for NetSurf
6 years, 9 months
nsgenbind: branch master updated. release/0.4-1-g3b3b926
by NetSurf Browser Project
Gitweb links:
...log http://git.netsurf-browser.org/nsgenbind.git/shortlog/3b3b926d7fb92361b1e...
...commit http://git.netsurf-browser.org/nsgenbind.git/commit/3b3b926d7fb92361b1e8e...
...tree http://git.netsurf-browser.org/nsgenbind.git/tree/3b3b926d7fb92361b1e8eed...
The branch, master has been updated
via 3b3b926d7fb92361b1e8eed2efb351c32cb7bfaa (commit)
from ab1f1cb380783ce4e9c87632daad2cf08ca22da5 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commitdiff http://git.netsurf-browser.org/nsgenbind.git/commit/?id=3b3b926d7fb92361b...
commit 3b3b926d7fb92361b1e8eed2efb351c32cb7bfaa
Author: Vincent Sanders <vince(a)kyllikki.org>
Commit: Vincent Sanders <vince(a)kyllikki.org>
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 <jrtc27(a)jrtc27.com> 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
--- a/src/nsgenbind-ast.c
+++ b/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
diff --git a/src/nsgenbind-ast.h b/src/nsgenbind-ast.h
index 49db23b..6fb7221 100644
--- a/src/nsgenbind-ast.h
+++ b/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);
diff --git a/src/nsgenbind-parser.y b/src/nsgenbind-parser.y
index c6b9a74..fd41c37 100644
--- a/src/nsgenbind-parser.y
+++ b/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));
}
;
diff --git a/src/webidl-ast.c b/src/webidl-ast.c
index 0d908ce..a1133e3 100644
--- a/src/webidl-ast.c
+++ b/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;
}
diff --git a/src/webidl-ast.h b/src/webidl-ast.h
index bd9b313..fad070b 100644
--- a/src/webidl-ast.h
+++ b/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);
diff --git a/src/webidl-parser.y b/src/webidl-parser.y
index ec3309c..0e46b17 100644
--- a/src/webidl-parser.y
+++ b/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);
}
-----------------------------------------------------------------------
Summary of changes:
src/nsgenbind-ast.c | 13 +++++
src/nsgenbind-ast.h | 11 ++++
src/nsgenbind-parser.y | 22 +++----
src/webidl-ast.c | 17 +++++-
src/webidl-ast.h | 9 +++
src/webidl-parser.y | 150 ++++++++++++++++++++++++++++++------------------
6 files changed, 153 insertions(+), 69 deletions(-)
diff --git a/src/nsgenbind-ast.c b/src/nsgenbind-ast.c
index 49732a0..f78fe26 100644
--- a/src/nsgenbind-ast.c
+++ b/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
diff --git a/src/nsgenbind-ast.h b/src/nsgenbind-ast.h
index 49db23b..6fb7221 100644
--- a/src/nsgenbind-ast.h
+++ b/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);
diff --git a/src/nsgenbind-parser.y b/src/nsgenbind-parser.y
index c6b9a74..fd41c37 100644
--- a/src/nsgenbind-parser.y
+++ b/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));
}
;
diff --git a/src/webidl-ast.c b/src/webidl-ast.c
index 0d908ce..a1133e3 100644
--- a/src/webidl-ast.c
+++ b/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;
}
diff --git a/src/webidl-ast.h b/src/webidl-ast.h
index bd9b313..fad070b 100644
--- a/src/webidl-ast.h
+++ b/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);
diff --git a/src/webidl-parser.y b/src/webidl-parser.y
index ec3309c..0e46b17 100644
--- a/src/webidl-parser.y
+++ b/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);
}
--
NetSurf Generator for JavaScript bindings
6 years, 9 months
netsurf: branch master updated. release/3.6-42-gf8f802c
by NetSurf Browser Project
Gitweb links:
...log http://git.netsurf-browser.org/netsurf.git/shortlog/f8f802cda5f54c0c2b1ac...
...commit http://git.netsurf-browser.org/netsurf.git/commit/f8f802cda5f54c0c2b1acd5...
...tree http://git.netsurf-browser.org/netsurf.git/tree/f8f802cda5f54c0c2b1acd51e...
The branch, master has been updated
via f8f802cda5f54c0c2b1acd51efc08aa7d4afad1b (commit)
via af1f1f375d0f0fdaf885f72fdbcd873f2203d227 (commit)
from 67b7854737f23f76b700a6fe76ce6060435f5cff (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commitdiff http://git.netsurf-browser.org/netsurf.git/commit/?id=f8f802cda5f54c0c2b1...
commit f8f802cda5f54c0c2b1acd51efc08aa7d4afad1b
Author: Vincent Sanders <vince(a)kyllikki.org>
Commit: Vincent Sanders <vince(a)kyllikki.org>
inhibit javascipt for native builds on architectures where it miscompiles
diff --git a/Makefile b/Makefile
index f616c6d..2371755 100644
--- a/Makefile
+++ b/Makefile
@@ -44,7 +44,6 @@ HOST := $(shell uname -s)
# TODO: Ideally, we want the equivalent of s/[^A-Za-z0-9]/_/g here
HOST := $(subst .,_,$(subst -,_,$(subst /,_,$(HOST))))
-
ifeq ($(HOST),)
HOST := riscos
$(warning Build platform determination failed but that's a known problem for RISC OS so we're assuming a native RISC OS build.)
@@ -300,7 +299,21 @@ else
endif
else
# All native targets
- PKG_CONFIG := pkg-config
+
+ # The machine architecture
+ # Possibles: i386 i686 x86_64 ia64 alpha amd64 arm
+ # armeb armel hppa m32r m68k mips mipsel powerpc ppc64
+ # s390 s390x sh3 sh3eb sh4 sh4eb sparc
+ HOST_ARCH := $(shell uname -m)
+
+ # disable duktape use on architectures where it miscompiles
+ NO_DUKTAPE_ARCH := s390 s390x ppc64
+ ifeq ($(filter-out $(NO_DUKTAPE_ARCH),$(HOST_ARCH)),)
+ override NETSURF_USE_DUKTAPE := NO
+ endif
+
+ # use native package config
+ PKG_CONFIG := pkg-config
# gtk target processing
ifeq ($(TARGET),gtk3)
commitdiff http://git.netsurf-browser.org/netsurf.git/commit/?id=af1f1f375d0f0fdaf88...
commit af1f1f375d0f0fdaf885f72fdbcd873f2203d227
Author: Vincent Sanders <vince(a)kyllikki.org>
Commit: Vincent Sanders <vince(a)kyllikki.org>
make nsgenbind call last in rule so faliures are noticed by make
diff --git a/content/handlers/javascript/duktape/Makefile b/content/handlers/javascript/duktape/Makefile
index 89f83b1..37e33d5 100644
--- a/content/handlers/javascript/duktape/Makefile
+++ b/content/handlers/javascript/duktape/Makefile
@@ -15,7 +15,6 @@ $(OBJROOT)/duktape/binding.h $(OBJROOT)/duktape/Makefile: content/handlers/javas
$(Q)mkdir -p $(OBJROOT)/duktape
$(VQ)echo " GENBIND: $<"
$(Q)nsgenbind $(GBFLAGS) -I content/handlers/javascript/WebIDL $< $(OBJROOT)/duktape
- $(VQ)echo " GENBIND: completed"
# create unimplemented report for doxygen
Docs/UnimplementedJavascript.txt: content/handlers/javascript/duktape/netsurf.bnd $(BINDINGS)
-----------------------------------------------------------------------
Summary of changes:
Makefile | 17 +++++++++++++++--
content/handlers/javascript/duktape/Makefile | 1 -
2 files changed, 15 insertions(+), 3 deletions(-)
diff --git a/Makefile b/Makefile
index f616c6d..2371755 100644
--- a/Makefile
+++ b/Makefile
@@ -44,7 +44,6 @@ HOST := $(shell uname -s)
# TODO: Ideally, we want the equivalent of s/[^A-Za-z0-9]/_/g here
HOST := $(subst .,_,$(subst -,_,$(subst /,_,$(HOST))))
-
ifeq ($(HOST),)
HOST := riscos
$(warning Build platform determination failed but that's a known problem for RISC OS so we're assuming a native RISC OS build.)
@@ -300,7 +299,21 @@ else
endif
else
# All native targets
- PKG_CONFIG := pkg-config
+
+ # The machine architecture
+ # Possibles: i386 i686 x86_64 ia64 alpha amd64 arm
+ # armeb armel hppa m32r m68k mips mipsel powerpc ppc64
+ # s390 s390x sh3 sh3eb sh4 sh4eb sparc
+ HOST_ARCH := $(shell uname -m)
+
+ # disable duktape use on architectures where it miscompiles
+ NO_DUKTAPE_ARCH := s390 s390x ppc64
+ ifeq ($(filter-out $(NO_DUKTAPE_ARCH),$(HOST_ARCH)),)
+ override NETSURF_USE_DUKTAPE := NO
+ endif
+
+ # use native package config
+ PKG_CONFIG := pkg-config
# gtk target processing
ifeq ($(TARGET),gtk3)
diff --git a/content/handlers/javascript/duktape/Makefile b/content/handlers/javascript/duktape/Makefile
index 89f83b1..37e33d5 100644
--- a/content/handlers/javascript/duktape/Makefile
+++ b/content/handlers/javascript/duktape/Makefile
@@ -15,7 +15,6 @@ $(OBJROOT)/duktape/binding.h $(OBJROOT)/duktape/Makefile: content/handlers/javas
$(Q)mkdir -p $(OBJROOT)/duktape
$(VQ)echo " GENBIND: $<"
$(Q)nsgenbind $(GBFLAGS) -I content/handlers/javascript/WebIDL $< $(OBJROOT)/duktape
- $(VQ)echo " GENBIND: completed"
# create unimplemented report for doxygen
Docs/UnimplementedJavascript.txt: content/handlers/javascript/duktape/netsurf.bnd $(BINDINGS)
--
NetSurf Browser
6 years, 10 months
netsurf: branch master updated. release/3.6-40-g67b7854
by NetSurf Browser Project
Gitweb links:
...log http://git.netsurf-browser.org/netsurf.git/shortlog/67b7854737f23f76b700a...
...commit http://git.netsurf-browser.org/netsurf.git/commit/67b7854737f23f76b700a6f...
...tree http://git.netsurf-browser.org/netsurf.git/tree/67b7854737f23f76b700a6fe7...
The branch, master has been updated
via 67b7854737f23f76b700a6fe76ce6060435f5cff (commit)
from 811d7b71758917919a0c94b1289bd5608119ccc5 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commitdiff http://git.netsurf-browser.org/netsurf.git/commit/?id=67b7854737f23f76b70...
commit 67b7854737f23f76b700a6fe76ce6060435f5cff
Author: Michael Drake <tlsa(a)netsurf-browser.org>
Commit: Michael Drake <tlsa(a)netsurf-browser.org>
IDNA: Update to upstream-compatible utf8proc API.
diff --git a/utils/idna.c b/utils/idna.c
index a23801b..d75f957 100644
--- a/utils/idna.c
+++ b/utils/idna.c
@@ -250,7 +250,7 @@ idna__utf8_to_ucs4(const char *utf8_label,
return NSERROR_NOMEM;
}
- nfc_size = utf8proc_normalise(nfc_label, nfc_size,
+ nfc_size = utf8proc_normalize_utf32(nfc_label, nfc_size,
UTF8PROC_STABLE | UTF8PROC_COMPOSE);
if (nfc_size < 0) {
return NSERROR_NOMEM;
@@ -565,7 +565,7 @@ static bool idna__verify(const char *label, size_t len)
}
/* Perform NFC normalisation */
- ucs4_len = utf8proc_normalise(ucs4, u_ucs4_len,
+ ucs4_len = utf8proc_normalize_utf32(ucs4, u_ucs4_len,
UTF8PROC_STABLE | UTF8PROC_COMPOSE);
if (ucs4_len < 0) {
free(ucs4);
-----------------------------------------------------------------------
Summary of changes:
utils/idna.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/utils/idna.c b/utils/idna.c
index a23801b..d75f957 100644
--- a/utils/idna.c
+++ b/utils/idna.c
@@ -250,7 +250,7 @@ idna__utf8_to_ucs4(const char *utf8_label,
return NSERROR_NOMEM;
}
- nfc_size = utf8proc_normalise(nfc_label, nfc_size,
+ nfc_size = utf8proc_normalize_utf32(nfc_label, nfc_size,
UTF8PROC_STABLE | UTF8PROC_COMPOSE);
if (nfc_size < 0) {
return NSERROR_NOMEM;
@@ -565,7 +565,7 @@ static bool idna__verify(const char *label, size_t len)
}
/* Perform NFC normalisation */
- ucs4_len = utf8proc_normalise(ucs4, u_ucs4_len,
+ ucs4_len = utf8proc_normalize_utf32(ucs4, u_ucs4_len,
UTF8PROC_STABLE | UTF8PROC_COMPOSE);
if (ucs4_len < 0) {
free(ucs4);
--
NetSurf Browser
6 years, 10 months
libutf8proc: branch master updated. release/1.3.1-2-1-g770e329
by NetSurf Browser Project
Gitweb links:
...log http://git.netsurf-browser.org/libutf8proc.git/shortlog/770e329cceaf0620c...
...commit http://git.netsurf-browser.org/libutf8proc.git/commit/770e329cceaf0620c7b...
...tree http://git.netsurf-browser.org/libutf8proc.git/tree/770e329cceaf0620c7b48...
The branch, master has been updated
via 770e329cceaf0620c7b482589a9b17ed1d19c16d (commit)
from 81ce69227bae528ac5f4ec78f3e78f511bf6cb69 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commitdiff http://git.netsurf-browser.org/libutf8proc.git/commit/?id=770e329cceaf062...
commit 770e329cceaf0620c7b482589a9b17ed1d19c16d
Author: Michael Drake <tlsa(a)netsurf-browser.org>
Commit: Michael Drake <tlsa(a)netsurf-browser.org>
Change API to match upstream.
I upstreamed something like our change, so now NetSurf should be able to
build with this or upstream.
https://github.com/JuliaLang/utf8proc/commit/70bbed8626e902d8c1e2b8277b0c...
I suggest we start building against upstream, as they have other improvements since
this fork.
diff --git a/include/libutf8proc/utf8proc.h b/include/libutf8proc/utf8proc.h
index 1731703..082bc83 100644
--- a/include/libutf8proc/utf8proc.h
+++ b/include/libutf8proc/utf8proc.h
@@ -482,7 +482,7 @@ UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_decompose(
* Reencodes the sequence of unicode characters given by the pointer
* 'buffer' and 'length'. See utf8proc_reencode for further details.
*/
-UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_normalise(utf8proc_int32_t *buffer, utf8proc_ssize_t length, utf8proc_option_t options);
+UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_normalize_utf32(utf8proc_int32_t *buffer, utf8proc_ssize_t length, utf8proc_option_t options);
/**
* Reencodes the sequence of `length` codepoints pointed to by `buffer`
diff --git a/src/utf8proc.c b/src/utf8proc.c
index cf64034..0814835 100644
--- a/src/utf8proc.c
+++ b/src/utf8proc.c
@@ -461,7 +461,7 @@ UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_decompose(
return wpos;
}
-UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_normalise(utf8proc_int32_t *buffer, utf8proc_ssize_t length, utf8proc_option_t options) {
+UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_normalize_utf32(utf8proc_int32_t *buffer, utf8proc_ssize_t length, utf8proc_option_t options) {
/* UTF8PROC_NULLTERM option will be ignored, 'length' is never ignored
ASSERT: 'buffer' has one spare byte of free space at the end! */
if (options & (UTF8PROC_NLF2LS | UTF8PROC_NLF2PS | UTF8PROC_STRIPCC)) {
@@ -568,7 +568,7 @@ UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_normalise(utf8proc_int32_t *buffer,
}
UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_reencode(utf8proc_int32_t *buffer, utf8proc_ssize_t length, utf8proc_option_t options) {
- length = utf8proc_normalise(buffer, length, options);
+ length = utf8proc_normalize_utf32(buffer, length, options);
if (length < 0) return length;
{
-----------------------------------------------------------------------
Summary of changes:
include/libutf8proc/utf8proc.h | 2 +-
src/utf8proc.c | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/include/libutf8proc/utf8proc.h b/include/libutf8proc/utf8proc.h
index 1731703..082bc83 100644
--- a/include/libutf8proc/utf8proc.h
+++ b/include/libutf8proc/utf8proc.h
@@ -482,7 +482,7 @@ UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_decompose(
* Reencodes the sequence of unicode characters given by the pointer
* 'buffer' and 'length'. See utf8proc_reencode for further details.
*/
-UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_normalise(utf8proc_int32_t *buffer, utf8proc_ssize_t length, utf8proc_option_t options);
+UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_normalize_utf32(utf8proc_int32_t *buffer, utf8proc_ssize_t length, utf8proc_option_t options);
/**
* Reencodes the sequence of `length` codepoints pointed to by `buffer`
diff --git a/src/utf8proc.c b/src/utf8proc.c
index cf64034..0814835 100644
--- a/src/utf8proc.c
+++ b/src/utf8proc.c
@@ -461,7 +461,7 @@ UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_decompose(
return wpos;
}
-UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_normalise(utf8proc_int32_t *buffer, utf8proc_ssize_t length, utf8proc_option_t options) {
+UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_normalize_utf32(utf8proc_int32_t *buffer, utf8proc_ssize_t length, utf8proc_option_t options) {
/* UTF8PROC_NULLTERM option will be ignored, 'length' is never ignored
ASSERT: 'buffer' has one spare byte of free space at the end! */
if (options & (UTF8PROC_NLF2LS | UTF8PROC_NLF2PS | UTF8PROC_STRIPCC)) {
@@ -568,7 +568,7 @@ UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_normalise(utf8proc_int32_t *buffer,
}
UTF8PROC_DLLEXPORT utf8proc_ssize_t utf8proc_reencode(utf8proc_int32_t *buffer, utf8proc_ssize_t length, utf8proc_option_t options) {
- length = utf8proc_normalise(buffer, length, options);
+ length = utf8proc_normalize_utf32(buffer, length, options);
if (length < 0) return length;
{
--
UTF8 Processing library (import)
6 years, 10 months
packaging/debian: branch master updated. 18ab605e5ae485cea171174f2c6e4f2883ab33a9
by NetSurf Browser Project
Gitweb links:
...log http://git.netsurf-browser.org/packaging/debian.git/shortlog/18ab605e5ae4...
...commit http://git.netsurf-browser.org/packaging/debian.git/commit/18ab605e5ae485...
...tree http://git.netsurf-browser.org/packaging/debian.git/tree/18ab605e5ae485ce...
The branch, master has been updated
via 18ab605e5ae485cea171174f2c6e4f2883ab33a9 (commit)
from 40d7395473038d87b2d863b6c255db2c2e9ab3ac (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commitdiff http://git.netsurf-browser.org/packaging/debian.git/commit/?id=18ab605e5a...
commit 18ab605e5ae485cea171174f2c6e4f2883ab33a9
Author: Vincent Sanders <vince(a)kyllikki.org>
Commit: Vincent Sanders <vince(a)kyllikki.org>
update for 3.6 release
diff --git a/changelog b/changelog
index 0cc05bc..617ef20 100644
--- a/changelog
+++ b/changelog
@@ -1,17 +1,11 @@
-netsurf (3.6-1) UNRELEASED; urgency=medium
+netsurf (3.6-1) unstable; urgency=medium
- * Update standards version (no change)
* New upstream release
-
- -- Vincent Sanders <vince(a)debian.org> Tue, 04 Oct 2016 09:04:59 +0100
-
-netsurf (3.5-1) unstable; urgency=medium
-
+ (closes: #803313, #812279, #769517, #788484, #731682, #828450)
* Update standards version (no change)
- * New upstream release (closes: #803313)
* Correct VCS headers (closes: #819882)
- -- Vincent Sanders <vince(a)debian.org> Tue, 04 Sep 2016 09:04:20 +0100
+ -- Vincent Sanders <vince(a)debian.org> Sun, 20 Nov 2016 14:49:57 +0000
netsurf (3.2+dfsg-3) unstable; urgency=medium
diff --git a/control b/control
index b25ab59..0ea434f 100644
--- a/control
+++ b/control
@@ -2,6 +2,7 @@ Source: netsurf
Section: web
Priority: extra
Maintainer: Vincent Sanders <vince(a)debian.org>
+Uploaders: Daniel Silverstone <dsilvers(a)digital-scurf.org>
Build-Depends: debhelper (>= 9~), libcurl3-dev, libpng-dev, libgtk2.0-dev, flex, bison, libhtml-parser-perl, librsvg2-dev, libjpeg-dev, imagemagick, libfreetype6-dev, libvncserver-dev, libsdl1.2-dev, libxcb1-dev, libxcb-icccm4-dev, libxcb-image0-dev, libxcb-keysyms1-dev, libxcb-util0-dev, libssl-dev, gperf
Standards-Version: 3.9.8
Homepage: http://www.netsurf-browser.org
@@ -29,6 +30,8 @@ Description: small web browser with CSS support for GTK
NetSurf is a multi-platform lightweight web browser. It aims to provide
comprehensive rendering of HTML 5 with CSS 2 in a small resource footprint
without compromising performance.
+ .
+ This version uses the GTK+ toolkit.
Package: netsurf-fb
Architecture: any
@@ -39,14 +42,18 @@ Description: small web browser with CSS support for framebuffers
NetSurf is a multi-platform lightweight web browser. It aims to provide
comprehensive rendering of HTML 5 with CSS 2 in a small resource footprint
without compromising performance.
+ .
+ This version uses no toolkit and displays output on various framebuffers.
Package: netsurf-common
Architecture: all
-Depends: ${misc:Depends}
+Depends: ${misc:Depends}, ca-certificates
Replaces: netsurf-gtk (<< 2.9-2)
Breaks: netsurf-gtk (<< 2.9-2)
Description: small web browser with CSS support common files
NetSurf is a multi-platform lightweight web browser. It aims to provide
comprehensive rendering of HTML 5 with CSS 2 in a small resource footprint
without compromising performance.
+ .
+ These are the common resources for all versions.
diff --git a/patches/openssl-1.1.0.patch b/patches/openssl-1.1.0.patch
new file mode 100644
index 0000000..8b4df33
--- /dev/null
+++ b/patches/openssl-1.1.0.patch
@@ -0,0 +1,62 @@
+--- a/netsurf/content/fetchers/curl.c
++++ b/netsurf/content/fetchers/curl.c
+@@ -128,6 +128,26 @@
+ static char fetch_proxy_userpwd[100];
+
+
++/* OpenSSL 1.0.x to 1.1.0 certificate reference counting changed */
++#if (OPENSSL_VERSION_NUMBER < 0x1010000fL)
++static int ns_X509_up_ref(X509 *cert)
++{
++ cert->references++;
++ return 1;
++}
++
++static void ns_X509_free(X509 *cert)
++{
++ cert->references--;
++ if (cert->references == 0) {
++ X509_free(cert);
++ }
++}
++#else
++#define ns_X509_up_ref X509_up_ref
++#define ns_X509_free X509_free
++#endif
++
+ /**
+ * Initialise a cURL fetcher.
+ */
+@@ -438,7 +458,7 @@
+ */
+ if (!fetch->cert_data[depth].cert) {
+ fetch->cert_data[depth].cert = X509_STORE_CTX_get_current_cert(x509_ctx);
+- fetch->cert_data[depth].cert->references++;
++ ns_X509_up_ref(fetch->cert_data[depth].cert);
+ fetch->cert_data[depth].err = X509_STORE_CTX_get_error(x509_ctx);
+ }
+
+@@ -815,10 +835,7 @@
+ }
+
+ for (i = 0; i < MAX_CERTS && f->cert_data[i].cert; i++) {
+- f->cert_data[i].cert->references--;
+- if (f->cert_data[i].cert->references == 0) {
+- X509_free(f->cert_data[i].cert);
+- }
++ ns_X509_free(f->cert_data[i].cert);
+ }
+
+ free(f);
+@@ -986,10 +1003,7 @@
+ X509_get_pubkey(certs[depth].cert));
+
+ /* and clean up */
+- certs[depth].cert->references--;
+- if (certs[depth].cert->references == 0) {
+- X509_free(certs[depth].cert);
+- }
++ ns_X509_free(certs[depth].cert);
+ }
+
+ msg.type = FETCH_CERT_ERR;
diff --git a/patches/remove-favicon-link.patch b/patches/remove-favicon-link.patch
new file mode 100644
index 0000000..2719c12
--- /dev/null
+++ b/patches/remove-favicon-link.patch
@@ -0,0 +1,10 @@
+--- a/netsurf/!NetSurf/Resources/nl/welcome.html,faf
++++ b/netsurf/!NetSurf/Resources/nl/welcome.html,faf
+@@ -3,7 +3,6 @@
+ <head>
+ <title>Welkom bij NetSurf</title>
+ <style type="text/css">html,body{margin:0;padding:0;}body{color:#000;background:#fff;font-family:sans-serif;margin:0 auto;}a:link{text-decoration:underline;color:#00f;}a:visited{text-decoration:underline;color:#60a;}a:hover{text-decoration:none;}a:active{text-decoration:underline;color:#f00;}.banner{margin:0;padding:0;background:#94adff;text-align:left;}.banner img{border:none;color:#000;height:86px;width:308px;display:block;}.onlycontent{margin:0 1em;}.nslinks{display:table;width:100%;margin:0;border-spacing:0;padding:0;background:#ccd8ff;font-size:88%;}.nslinks li{display:table-cell;text-align:center;padding:0.2em 0.3em 0.3em;vertical-align:middle;}.nslinks li+li{border-left:2px solid #b1c3ff;}.version{padding:0;margin:1.2em auto 0;width:90%;color:#444;font-size:160%;}.intro{width: 90%;margin:1em auto;color:#666;}.websearch{margin:1.5em auto;padding:1.2em 0.3em;background:#d8e2ff;border:2px solid #c5d3ff;width:80%;text-align:center;}input[type=text]{border:2px solid #b6c7ff;background:#f9faff;color:#000;margin:2px;}input[type=submit]{border:2px outset #cedaff;color:#000;background:#cedaff;margin:2px;}.links{display:table;width:80%;margin:0 auto 3em;font-size:94%;}.links p{display:table-cell;}.links ul{padding-left:0.8em;margin-top:-1em;}.links ul+ul{padding-left:1em;}.footer{font-style:italic;color:#666;text-align:right;}.footer p{margin-top:1.5em;padding-top:0.4em;border-top:2px solid #94adff;}</style>
+-<link rel="icon" type="image/png" href="http://www.netsurf-browser.org/webimages/favicon.png">
+ </head>
+
+ <body>
diff --git a/patches/series b/patches/series
index a8f7a18..25a75e0 100644
--- a/patches/series
+++ b/patches/series
@@ -1 +1,3 @@
+remove-favicon-link.patch
+openssl-1.1.0.patch
set-netsurf-config.patch
diff --git a/rules b/rules
index 4348a4c..366c6c8 100755
--- a/rules
+++ b/rules
@@ -23,6 +23,8 @@ override_dh_auto_install:
convert netsurf/frontends/gtk/res/netsurf.xpm debian/netsurf-gtk/usr/share/pixmaps/netsurf.png
install -m 644 debian/netsurf-gtk.desktop debian/netsurf-gtk/usr/share/applications
dh_auto_install -- PREFIX=/usr TARGET=framebuffer
+ rm debian/tmp/usr/share/netsurf/ca-bundle.txt
+ ln -s /etc/ssl/certs/ca-certificates.crt debian/tmp/usr/share/netsurf/ca-bundle.txt
override_dh_auto_clean:
dh_auto_clean -- PREFIX=/usr TARGET=gtk
-----------------------------------------------------------------------
Summary of changes:
changelog | 12 ++-----
control | 9 +++++-
patches/openssl-1.1.0.patch | 62 +++++++++++++++++++++++++++++++++++++
patches/remove-favicon-link.patch | 10 ++++++
patches/series | 2 ++
rules | 2 ++
6 files changed, 87 insertions(+), 10 deletions(-)
create mode 100644 patches/openssl-1.1.0.patch
create mode 100644 patches/remove-favicon-link.patch
diff --git a/changelog b/changelog
index 0cc05bc..617ef20 100644
--- a/changelog
+++ b/changelog
@@ -1,17 +1,11 @@
-netsurf (3.6-1) UNRELEASED; urgency=medium
+netsurf (3.6-1) unstable; urgency=medium
- * Update standards version (no change)
* New upstream release
-
- -- Vincent Sanders <vince(a)debian.org> Tue, 04 Oct 2016 09:04:59 +0100
-
-netsurf (3.5-1) unstable; urgency=medium
-
+ (closes: #803313, #812279, #769517, #788484, #731682, #828450)
* Update standards version (no change)
- * New upstream release (closes: #803313)
* Correct VCS headers (closes: #819882)
- -- Vincent Sanders <vince(a)debian.org> Tue, 04 Sep 2016 09:04:20 +0100
+ -- Vincent Sanders <vince(a)debian.org> Sun, 20 Nov 2016 14:49:57 +0000
netsurf (3.2+dfsg-3) unstable; urgency=medium
diff --git a/control b/control
index b25ab59..0ea434f 100644
--- a/control
+++ b/control
@@ -2,6 +2,7 @@ Source: netsurf
Section: web
Priority: extra
Maintainer: Vincent Sanders <vince(a)debian.org>
+Uploaders: Daniel Silverstone <dsilvers(a)digital-scurf.org>
Build-Depends: debhelper (>= 9~), libcurl3-dev, libpng-dev, libgtk2.0-dev, flex, bison, libhtml-parser-perl, librsvg2-dev, libjpeg-dev, imagemagick, libfreetype6-dev, libvncserver-dev, libsdl1.2-dev, libxcb1-dev, libxcb-icccm4-dev, libxcb-image0-dev, libxcb-keysyms1-dev, libxcb-util0-dev, libssl-dev, gperf
Standards-Version: 3.9.8
Homepage: http://www.netsurf-browser.org
@@ -29,6 +30,8 @@ Description: small web browser with CSS support for GTK
NetSurf is a multi-platform lightweight web browser. It aims to provide
comprehensive rendering of HTML 5 with CSS 2 in a small resource footprint
without compromising performance.
+ .
+ This version uses the GTK+ toolkit.
Package: netsurf-fb
Architecture: any
@@ -39,14 +42,18 @@ Description: small web browser with CSS support for framebuffers
NetSurf is a multi-platform lightweight web browser. It aims to provide
comprehensive rendering of HTML 5 with CSS 2 in a small resource footprint
without compromising performance.
+ .
+ This version uses no toolkit and displays output on various framebuffers.
Package: netsurf-common
Architecture: all
-Depends: ${misc:Depends}
+Depends: ${misc:Depends}, ca-certificates
Replaces: netsurf-gtk (<< 2.9-2)
Breaks: netsurf-gtk (<< 2.9-2)
Description: small web browser with CSS support common files
NetSurf is a multi-platform lightweight web browser. It aims to provide
comprehensive rendering of HTML 5 with CSS 2 in a small resource footprint
without compromising performance.
+ .
+ These are the common resources for all versions.
diff --git a/patches/openssl-1.1.0.patch b/patches/openssl-1.1.0.patch
new file mode 100644
index 0000000..8b4df33
--- /dev/null
+++ b/patches/openssl-1.1.0.patch
@@ -0,0 +1,62 @@
+--- a/netsurf/content/fetchers/curl.c
++++ b/netsurf/content/fetchers/curl.c
+@@ -128,6 +128,26 @@
+ static char fetch_proxy_userpwd[100];
+
+
++/* OpenSSL 1.0.x to 1.1.0 certificate reference counting changed */
++#if (OPENSSL_VERSION_NUMBER < 0x1010000fL)
++static int ns_X509_up_ref(X509 *cert)
++{
++ cert->references++;
++ return 1;
++}
++
++static void ns_X509_free(X509 *cert)
++{
++ cert->references--;
++ if (cert->references == 0) {
++ X509_free(cert);
++ }
++}
++#else
++#define ns_X509_up_ref X509_up_ref
++#define ns_X509_free X509_free
++#endif
++
+ /**
+ * Initialise a cURL fetcher.
+ */
+@@ -438,7 +458,7 @@
+ */
+ if (!fetch->cert_data[depth].cert) {
+ fetch->cert_data[depth].cert = X509_STORE_CTX_get_current_cert(x509_ctx);
+- fetch->cert_data[depth].cert->references++;
++ ns_X509_up_ref(fetch->cert_data[depth].cert);
+ fetch->cert_data[depth].err = X509_STORE_CTX_get_error(x509_ctx);
+ }
+
+@@ -815,10 +835,7 @@
+ }
+
+ for (i = 0; i < MAX_CERTS && f->cert_data[i].cert; i++) {
+- f->cert_data[i].cert->references--;
+- if (f->cert_data[i].cert->references == 0) {
+- X509_free(f->cert_data[i].cert);
+- }
++ ns_X509_free(f->cert_data[i].cert);
+ }
+
+ free(f);
+@@ -986,10 +1003,7 @@
+ X509_get_pubkey(certs[depth].cert));
+
+ /* and clean up */
+- certs[depth].cert->references--;
+- if (certs[depth].cert->references == 0) {
+- X509_free(certs[depth].cert);
+- }
++ ns_X509_free(certs[depth].cert);
+ }
+
+ msg.type = FETCH_CERT_ERR;
diff --git a/patches/remove-favicon-link.patch b/patches/remove-favicon-link.patch
new file mode 100644
index 0000000..2719c12
--- /dev/null
+++ b/patches/remove-favicon-link.patch
@@ -0,0 +1,10 @@
+--- a/netsurf/!NetSurf/Resources/nl/welcome.html,faf
++++ b/netsurf/!NetSurf/Resources/nl/welcome.html,faf
+@@ -3,7 +3,6 @@
+ <head>
+ <title>Welkom bij NetSurf</title>
+ <style type="text/css">html,body{margin:0;padding:0;}body{color:#000;background:#fff;font-family:sans-serif;margin:0 auto;}a:link{text-decoration:underline;color:#00f;}a:visited{text-decoration:underline;color:#60a;}a:hover{text-decoration:none;}a:active{text-decoration:underline;color:#f00;}.banner{margin:0;padding:0;background:#94adff;text-align:left;}.banner img{border:none;color:#000;height:86px;width:308px;display:block;}.onlycontent{margin:0 1em;}.nslinks{display:table;width:100%;margin:0;border-spacing:0;padding:0;background:#ccd8ff;font-size:88%;}.nslinks li{display:table-cell;text-align:center;padding:0.2em 0.3em 0.3em;vertical-align:middle;}.nslinks li+li{border-left:2px solid #b1c3ff;}.version{padding:0;margin:1.2em auto 0;width:90%;color:#444;font-size:160%;}.intro{width: 90%;margin:1em auto;color:#666;}.websearch{margin:1.5em auto;padding:1.2em 0.3em;background:#d8e2ff;border:2px solid #c5d3ff;width:80%;text-align:center;}input[type=text]{border:2px solid #b6c7ff;background:#f9faff;color:#000;margin:2px;}input[type=submit]{border:2px outset #cedaff;color:#000;background:#cedaff;margin:2px;}.links{display:table;width:80%;margin:0 auto 3em;font-size:94%;}.links p{display:table-cell;}.links ul{padding-left:0.8em;margin-top:-1em;}.links ul+ul{padding-left:1em;}.footer{font-style:italic;color:#666;text-align:right;}.footer p{margin-top:1.5em;padding-top:0.4em;border-top:2px solid #94adff;}</style>
+-<link rel="icon" type="image/png" href="http://www.netsurf-browser.org/webimages/favicon.png">
+ </head>
+
+ <body>
diff --git a/patches/series b/patches/series
index a8f7a18..25a75e0 100644
--- a/patches/series
+++ b/patches/series
@@ -1 +1,3 @@
+remove-favicon-link.patch
+openssl-1.1.0.patch
set-netsurf-config.patch
diff --git a/rules b/rules
index 4348a4c..366c6c8 100755
--- a/rules
+++ b/rules
@@ -23,6 +23,8 @@ override_dh_auto_install:
convert netsurf/frontends/gtk/res/netsurf.xpm debian/netsurf-gtk/usr/share/pixmaps/netsurf.png
install -m 644 debian/netsurf-gtk.desktop debian/netsurf-gtk/usr/share/applications
dh_auto_install -- PREFIX=/usr TARGET=framebuffer
+ rm debian/tmp/usr/share/netsurf/ca-bundle.txt
+ ln -s /etc/ssl/certs/ca-certificates.crt debian/tmp/usr/share/netsurf/ca-bundle.txt
override_dh_auto_clean:
dh_auto_clean -- PREFIX=/usr TARGET=gtk
--
Debian Packaging for NetSurf
6 years, 10 months