23#ifndef MUPDF_FITZ_STORE_H
24#define MUPDF_FITZ_STORE_H
96#define FZ_INIT_STORABLE(S_,RC,DROP) \
97 do { fz_storable *S = &(S_)->storable; S->refs = (RC); \
98 S->drop = (DROP); S->droppable = NULL; \
101#define FZ_INIT_AWKWARD_STORABLE(S_,RC,DROP,DROPPABLE) \
102 do { fz_storable *S = &(S_)->storable; S->refs = (RC); \
103 S->drop = (DROP); S->droppable = (DROPPABLE); \
109#define FZ_INIT_KEY_STORABLE(KS_,RC,DROP) \
110 do { fz_key_storable *KS = &(KS_)->key_storable; KS->store_key_refs = 0;\
111 FZ_INIT_STORABLE(KS,RC,DROP); \
451#ifdef ENABLE_STORE_LOGGING
453void fz_log_dump_store(
fz_context *ctx,
const char *fmt, ...);
455#define FZ_LOG_STORE(CTX, ...) fz_log_module(CTX, "STORE", __VA_ARGS__)
456#define FZ_LOG_DUMP_STORE(...) fz_log_dump_store(__VA_ARGS__)
460#define FZ_LOG_STORE(...) do {} while (0)
461#define FZ_LOG_DUMP_STORE(...) do {} while (0)
struct fz_store fz_store
Definition context.h:40
void fz_defer_reap_end(fz_context *ctx)
void fz_drop_key_storable_key(fz_context *, const fz_key_storable *)
void fz_remove_item(fz_context *ctx, fz_store_drop_fn *drop, void *key, const fz_store_type *type)
int fz_store_filter_fn(fz_context *ctx, void *arg, void *key)
Definition store.h:400
void fz_filter_store(fz_context *ctx, fz_store_filter_fn *fn, void *arg, const fz_store_type *type)
void fz_new_store_context(fz_context *ctx, size_t max)
void * fz_store_item(fz_context *ctx, void *key, void *val, size_t itemsize, const fz_store_type *type)
void * fz_keep_storable(fz_context *, const fz_storable *)
void fz_drop_storable(fz_context *, const fz_storable *)
fz_store * fz_keep_store_context(fz_context *ctx)
int fz_store_droppable_fn(fz_context *, fz_storable *)
Definition store.h:69
void * fz_find_item(fz_context *ctx, fz_store_drop_fn *drop, void *key, const fz_store_type *type)
void * fz_keep_key_storable(fz_context *, const fz_key_storable *)
int fz_store_scavenge_external(fz_context *ctx, size_t size, int *phase)
void fz_debug_store(fz_context *ctx, fz_output *out)
void * fz_keep_key_storable_key(fz_context *, const fz_key_storable *)
int fz_store_scavenge(fz_context *ctx, size_t size, int *phase)
void fz_defer_reap_start(fz_context *ctx)
int fz_shrink_store(fz_context *ctx, unsigned int percent)
void fz_drop_drawn_tiles_for_document(fz_context *ctx, fz_document *doc)
void fz_drop_store_context(fz_context *ctx)
void fz_store_drop_fn(fz_context *, fz_storable *)
Definition store.h:61
void fz_drop_key_storable(fz_context *, const fz_key_storable *)
void fz_empty_store(fz_context *ctx)
Definition document.h:1080
Definition geometry.h:248
short store_key_refs
Definition store.h:90
fz_storable storable
Definition store.h:89
int refs
Definition store.h:77
fz_store_drop_fn * drop
Definition store.h:78
fz_store_droppable_fn * droppable
Definition store.h:79
fz_irect r
Definition store.h:232
unsigned int bgr
Definition store.h:254
unsigned int ri
Definition store.h:247
fz_store_drop_fn * drop
Definition store.h:220
unsigned char dst_md5[16]
Definition store.h:246
const void * ptr
Definition store.h:225
char has_group_alpha
Definition store.h:238
unsigned int src_extras
Definition store.h:251
char has_shape
Definition store.h:237
int i
Definition store.h:226
int id
Definition store.h:236
unsigned char src_md5[16]
Definition store.h:245
unsigned int proof
Definition store.h:250
unsigned int format
Definition store.h:249
float m[4]
Definition store.h:239
unsigned int copy_spots
Definition store.h:253
int doc_id
Definition store.h:241
unsigned int dst_extras
Definition store.h:252
unsigned int bp
Definition store.h:248
int(* make_hash_key)(fz_context *ctx, fz_store_hash *hash, void *key)
Definition store.h:268
int(* needs_reap)(fz_context *ctx, void *key)
Definition store.h:273
int(* cmp_key)(fz_context *ctx, void *a, void *b)
Definition store.h:271
void(* format_key)(fz_context *ctx, char *buf, size_t size, void *key)
Definition store.h:272
void(* drop_key)(fz_context *ctx, void *key)
Definition store.h:270
const char * name
Definition store.h:267