diff options
Diffstat (limited to 'source/blender/imbuf')
-rw-r--r-- | source/blender/imbuf/IMB_imbuf_types.h | 1 | ||||
-rw-r--r-- | source/blender/imbuf/intern/allocimbuf.c | 5 |
2 files changed, 6 insertions, 0 deletions
diff --git a/source/blender/imbuf/IMB_imbuf_types.h b/source/blender/imbuf/IMB_imbuf_types.h index 3cc155af1ad..79da0cb1c41 100644 --- a/source/blender/imbuf/IMB_imbuf_types.h +++ b/source/blender/imbuf/IMB_imbuf_types.h @@ -83,6 +83,7 @@ typedef struct ImBuf { int ftype; /**< File type we are going to save as */ unsigned int *cmap; /**< Color map data. */ unsigned int *rect; /**< pixel values stored here */ + unsigned int *crect; /**< color corrected pixel values stored here */ unsigned int **planes; /**< bitplanes */ int flags; /**< Controls which components should exist. */ int mall; /**< what is malloced internal, and can be freed */ diff --git a/source/blender/imbuf/intern/allocimbuf.c b/source/blender/imbuf/intern/allocimbuf.c index ad7b1dce2e0..b561f0a583d 100644 --- a/source/blender/imbuf/intern/allocimbuf.c +++ b/source/blender/imbuf/intern/allocimbuf.c @@ -93,6 +93,10 @@ void imb_freerectImBuf(struct ImBuf * ibuf) { if (ibuf==NULL) return; + if (ibuf->crect && ibuf->crect != ibuf->rect) { + MEM_freeN(ibuf->crect); + } + if (ibuf->rect) { if (ibuf->mall & IB_rect) { MEM_freeN(ibuf->rect); @@ -102,6 +106,7 @@ void imb_freerectImBuf(struct ImBuf * ibuf) imb_freemipmapImBuf(ibuf); ibuf->rect= NULL; + ibuf->crect= NULL; ibuf->mall &= ~IB_rect; } |