+static bool allocate_buffers(
+ opj_t1_t *t1,
+ int w,
+ int h)
+{
+ int datasize=w * h;
+ int flagssize;
+
+ if(datasize > t1->datasize){
+ opj_aligned_free(t1->data);
+ t1->data=opj_aligned_malloc(datasize * sizeof(int));
+ if(!t1->data){
+ return false;
+ }
+ t1->datasize=datasize;
+ }
+ memset(t1->data,0,datasize * sizeof(int));
+
+ t1->flags_stride=w+2;
+ flagssize=t1->flags_stride * (h+2);
+
+ if(flagssize > t1->flagssize){
+ opj_aligned_free(t1->flags);
+ t1->flags=opj_aligned_malloc(flagssize * sizeof(flag_t));
+ if(!t1->flags){
+ return false;
+ }
+ t1->flagssize=flagssize;
+ }
+ memset(t1->flags,0,flagssize * sizeof(flag_t));
+
+ t1->w=w;
+ t1->h=h;
+
+ return true;
+}
+