summaryrefslogtreecommitdiff
path: root/source/tools
diff options
context:
space:
mode:
authorRobin Watts <robin.watts@artifex.com>2016-11-11 16:05:30 +0000
committerRobin Watts <robin.watts@artifex.com>2016-11-14 16:09:39 +0000
commit37f95f87bdfb2e0b01d649afae5fffe60bf99d3a (patch)
treeda3491c62d6af86c1a5bc4e523e8f9ebe19793d1 /source/tools
parentc0e1dfdab1a13def046e94d771f8a821ba2a10d9 (diff)
downloadmupdf-37f95f87bdfb2e0b01d649afae5fffe60bf99d3a.tar.xz
Make fz_buffer structure private to fitz.
Move the definition of the structure contents into new fitz-imp.h file. Make all code outside of fitz access the buffer through the defined API. Add a convenience API for people that want to get buffers as null terminated C strings.
Diffstat (limited to 'source/tools')
-rw-r--r--source/tools/muconvert.c3
-rw-r--r--source/tools/mudraw.c3
-rw-r--r--source/tools/muraster.c3
-rw-r--r--source/tools/murun.c14
-rw-r--r--source/tools/pdfextract.c6
5 files changed, 17 insertions, 12 deletions
diff --git a/source/tools/muconvert.c b/source/tools/muconvert.c
index a62a0dd3..575574be 100644
--- a/source/tools/muconvert.c
+++ b/source/tools/muconvert.c
@@ -131,8 +131,7 @@ int muconvert_main(int argc, char **argv)
if (layout_css)
{
fz_buffer *buf = fz_read_file(ctx, layout_css);
- fz_write_buffer_byte(ctx, buf, 0);
- fz_set_user_css(ctx, (char*)buf->data);
+ fz_set_user_css(ctx, fz_string_from_buffer(ctx, buf));
fz_drop_buffer(ctx, buf);
}
diff --git a/source/tools/mudraw.c b/source/tools/mudraw.c
index 470ff66d..0b091fee 100644
--- a/source/tools/mudraw.c
+++ b/source/tools/mudraw.c
@@ -1555,8 +1555,7 @@ int mudraw_main(int argc, char **argv)
if (layout_css)
{
fz_buffer *buf = fz_read_file(ctx, layout_css);
- fz_write_buffer_byte(ctx, buf, 0);
- fz_set_user_css(ctx, (char*)buf->data);
+ fz_set_user_css(ctx, fz_string_from_buffer(ctx, buf));
fz_drop_buffer(ctx, buf);
}
diff --git a/source/tools/muraster.c b/source/tools/muraster.c
index ddb546b1..a22ee0a8 100644
--- a/source/tools/muraster.c
+++ b/source/tools/muraster.c
@@ -1700,8 +1700,7 @@ int main(int argc, char **argv)
if (layoutput_css)
{
fz_buffer *buf = fz_read_file(ctx, layoutput_css);
- fz_write_buffer_byte(ctx, buf, 0);
- fz_set_user_css(ctx, (char*)buf->data);
+ fz_set_user_css(ctx, fz_string_from_buffer(ctx, buf));
fz_drop_buffer(ctx, buf);
}
diff --git a/source/tools/murun.c b/source/tools/murun.c
index b1f95d57..7d26c49c 100644
--- a/source/tools/murun.c
+++ b/source/tools/murun.c
@@ -688,14 +688,16 @@ static int ffi_buffer_has(js_State *J, void *buf_, const char *key)
{
fz_buffer *buf = buf_;
int idx;
+ unsigned char *data;
+ size_t len = fz_buffer_storage(js_getcontext(J), buf, &data);
if (is_number(key, &idx)) {
- if (idx < 0 || (size_t)idx >= buf->len)
+ if (idx < 0 || (size_t)idx >= len)
js_rangeerror(J, "index out of bounds");
- js_pushnumber(J, buf->data[idx]);
+ js_pushnumber(J, data[idx]);
return 1;
}
if (!strcmp(key, "length")) {
- js_pushnumber(J, buf->len);
+ js_pushnumber(J, len);
return 1;
}
return 0;
@@ -705,10 +707,12 @@ static int ffi_buffer_put(js_State *J, void *buf_, const char *key)
{
fz_buffer *buf = buf_;
int idx;
+ unsigned char *data;
+ size_t len = fz_buffer_storage(js_getcontext(J), buf, &data);
if (is_number(key, &idx)) {
- if (idx < 0 || (size_t)idx >= buf->len)
+ if (idx < 0 || (size_t)idx >= len)
js_rangeerror(J, "index out of bounds");
- buf->data[idx] = js_tonumber(J, -1);
+ data[idx] = js_tonumber(J, -1);
return 1;
}
if (!strcmp(key, "length"))
diff --git a/source/tools/pdfextract.c b/source/tools/pdfextract.c
index dadcda15..d65befdd 100644
--- a/source/tools/pdfextract.c
+++ b/source/tools/pdfextract.c
@@ -112,9 +112,13 @@ static void saveimage(int num)
switch (type)
{
case FZ_IMAGE_JPEG:
+ {
+ unsigned char *data;
+ size_t len = fz_buffer_storage(ctx, cbuf->buffer, &data);
snprintf(buf, sizeof(buf), "img-%04d", num);
- writejpeg(ctx, cbuf->buffer->data, cbuf->buffer->len, buf);
+ writejpeg(ctx, data, len, buf);
break;
+ }
default:
pix = fz_get_pixmap_from_image(ctx, image, NULL, NULL, 0, 0);
writepixmap(ctx, pix, buf, dorgb);