diff options
author | Robin Watts <robin.watts@artifex.com> | 2011-12-15 00:43:54 +0000 |
---|---|---|
committer | Robin Watts <robin.watts@artifex.com> | 2011-12-15 00:43:54 +0000 |
commit | ba4cca2c65677aeffb088117169abbc12ebec3fc (patch) | |
tree | 08379a140cd14f2164114d43a722fabf111a0fff /fitz/res_pixmap.c | |
parent | 313e8f82816c839b3de47e1137a91414bb95a327 (diff) | |
download | mupdf-ba4cca2c65677aeffb088117169abbc12ebec3fc.tar.xz |
Remove 'soft limit' on pixmaps in favour of fz_store.
Change the fz_store to be limited to 256 Megs. Remove the soft limit
for pixmaps; the store will automatically throw old resources away
to stay below the limit.
Diffstat (limited to 'fitz/res_pixmap.c')
-rw-r--r-- | fitz/res_pixmap.c | 21 |
1 files changed, 1 insertions, 20 deletions
diff --git a/fitz/res_pixmap.c b/fitz/res_pixmap.c index c8ae7540..0f6e192d 100644 --- a/fitz/res_pixmap.c +++ b/fitz/res_pixmap.c @@ -1,8 +1,5 @@ #include "fitz.h" -static int fz_memory_limit = 256 << 20; -static int fz_memory_used = 0; - fz_pixmap * fz_keep_pixmap(fz_pixmap *pix) { @@ -18,7 +15,6 @@ fz_drop_pixmap(fz_context *ctx, fz_pixmap *pix) void fz_free_pixmap_imp(fz_context *ctx, fz_pixmap *pix) { - fz_memory_used -= pix->w * pix->h * pix->n; if (pix->mask) fz_drop_pixmap(ctx, pix->mask); if (pix->colorspace) @@ -59,7 +55,6 @@ fz_new_pixmap_with_data(fz_context *ctx, fz_colorspace *colorspace, int w, int h } else { - fz_memory_used += pix->w * pix->h * pix->n; pix->samples = fz_malloc_array(ctx, pix->h, pix->w * pix->n); pix->free_samples = 1; } @@ -68,20 +63,6 @@ fz_new_pixmap_with_data(fz_context *ctx, fz_colorspace *colorspace, int w, int h } fz_pixmap * -fz_new_pixmap_with_limit(fz_context *ctx, fz_colorspace *colorspace, int w, int h) -{ - int n = colorspace ? colorspace->n + 1 : 1; - int size = w * h * n; - if (fz_memory_used + size > fz_memory_limit) - { - fz_warn(ctx, "pixmap memory exceeds soft limit %dM + %dM > %dM", - fz_memory_used/(1<<20), size/(1<<20), fz_memory_limit/(1<<20)); - return NULL; - } - return fz_new_pixmap_with_data(ctx, colorspace, w, h, NULL); -} - -fz_pixmap * fz_new_pixmap(fz_context *ctx, fz_colorspace *colorspace, int w, int h) { return fz_new_pixmap_with_data(ctx, colorspace, w, h, NULL); @@ -541,5 +522,5 @@ fz_pixmap_size(fz_pixmap * pix) { if (pix == NULL) return 0; - return sizeof(*pix) + pix->n * pix->x * pix->y; + return sizeof(*pix) + pix->n * pix->w * pix->h; } |