Gitweb links:
...log
http://git.netsurf-browser.org/netsurf.git/shortlog/74b8767ee2628f46d4e595a3a5e1928fcbb3f64c
...commit
http://git.netsurf-browser.org/netsurf.git/commit/74b8767ee2628f46d4e595a3a5e1928fcbb3f64c
...tree
http://git.netsurf-browser.org/netsurf.git/tree/74b8767ee2628f46d4e595a3a5e1928fcbb3f64c
The branch, master has been updated
via 74b8767ee2628f46d4e595a3a5e1928fcbb3f64c (commit)
from 1c4025e92c8da488e6c931009725e0e1d6902d01 (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=74b8767ee2628f46d4e595a3a5e1928fcbb3f64c
commit 74b8767ee2628f46d4e595a3a5e1928fcbb3f64c
Author: Daniel Silverstone <[email protected]>
Commit: Daniel Silverstone <[email protected]>
Canvas: Do not overrun destination bitmap during creation
Signed-off-by: Daniel Silverstone <[email protected]>
diff --git a/content/handlers/javascript/duktape/CanvasRenderingContext2D.bnd
b/content/handlers/javascript/duktape/CanvasRenderingContext2D.bnd
index 272e8e7..007c587 100644
--- a/content/handlers/javascript/duktape/CanvasRenderingContext2D.bnd
+++ b/content/handlers/javascript/duktape/CanvasRenderingContext2D.bnd
@@ -428,7 +428,7 @@ method CanvasRenderingContext2D::getImageData()
int width = duk_get_int(ctx, 2);
int height = duk_get_int(ctx, 3);
image_data_private_t *idpriv;
- uint8_t *bitmap_base;
+ uint8_t *src_base, *dst_base;
if (priv->bitmap == NULL)
return duk_generic_error(ctx, "Canvas in bad state, sorry");
@@ -456,11 +456,12 @@ method CanvasRenderingContext2D::getImageData()
/* We now have access to the imagedata private, so we need to copy
* the pixel range out of ourselves
*/
- bitmap_base = guit->bitmap->get_buffer(priv->bitmap);
+ src_base = guit->bitmap->get_buffer(priv->bitmap);
+ dst_base = idpriv->data;
for (int yy = y; yy < (y+height); ++yy) {
- uint8_t *src_base = bitmap_base + (priv->stride * yy);
- uint8_t *dst_base = idpriv->data + (width * 4);
- memcpy(dst_base + (x * 4), src_base + (x * 4), width * 4);
+ memcpy(dst_base, src_base + (x * 4), width * 4);
+ src_base += priv->stride;
+ dst_base += (width * 4);
}
return 1;
%}
-----------------------------------------------------------------------
Summary of changes:
.../javascript/duktape/CanvasRenderingContext2D.bnd | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/content/handlers/javascript/duktape/CanvasRenderingContext2D.bnd
b/content/handlers/javascript/duktape/CanvasRenderingContext2D.bnd
index 272e8e7..007c587 100644
--- a/content/handlers/javascript/duktape/CanvasRenderingContext2D.bnd
+++ b/content/handlers/javascript/duktape/CanvasRenderingContext2D.bnd
@@ -428,7 +428,7 @@ method CanvasRenderingContext2D::getImageData()
int width = duk_get_int(ctx, 2);
int height = duk_get_int(ctx, 3);
image_data_private_t *idpriv;
- uint8_t *bitmap_base;
+ uint8_t *src_base, *dst_base;
if (priv->bitmap == NULL)
return duk_generic_error(ctx, "Canvas in bad state, sorry");
@@ -456,11 +456,12 @@ method CanvasRenderingContext2D::getImageData()
/* We now have access to the imagedata private, so we need to copy
* the pixel range out of ourselves
*/
- bitmap_base = guit->bitmap->get_buffer(priv->bitmap);
+ src_base = guit->bitmap->get_buffer(priv->bitmap);
+ dst_base = idpriv->data;
for (int yy = y; yy < (y+height); ++yy) {
- uint8_t *src_base = bitmap_base + (priv->stride * yy);
- uint8_t *dst_base = idpriv->data + (width * 4);
- memcpy(dst_base + (x * 4), src_base + (x * 4), width * 4);
+ memcpy(dst_base, src_base + (x * 4), width * 4);
+ src_base += priv->stride;
+ dst_base += (width * 4);
}
return 1;
%}
--
NetSurf Browser
_______________________________________________
netsurf-commits mailing list -- [email protected]
To unsubscribe send an email to [email protected]