X-Git-Url: http://git.asbjorn.biz/?p=swftools.git;a=blobdiff_plain;f=lib%2Fpdf%2FGFXOutputDev.cc;h=16e5e911c79c9e3b1e45e301e8f9db8cd292792c;hp=f2074b810fe68ed9e0709581ab3217d75c78f640;hb=6c994aa888cbc794002e876cc8ebe85eebdfe463;hpb=6f752003d958028263b5c07c422eaad0e7ec4390 diff --git a/lib/pdf/GFXOutputDev.cc b/lib/pdf/GFXOutputDev.cc index f2074b8..16e5e91 100644 --- a/lib/pdf/GFXOutputDev.cc +++ b/lib/pdf/GFXOutputDev.cc @@ -2571,17 +2571,20 @@ void GFXOutputDev::preparePage(int pdfpage, int outputpage) if(!this->pages) { this->pagebuflen = 1024; + if(pdfpage > this->pagebuflen) + this->pagebuflen = pdfpage+1; this->pages = (int*)malloc(this->pagebuflen*sizeof(int)); memset(this->pages, -1, this->pagebuflen*sizeof(int)); - } else { - while(pdfpage >= this->pagebuflen) - { - int oldlen = this->pagebuflen; - this->pagebuflen+=1024; - this->pages = (int*)realloc(this->pages, this->pagebuflen*sizeof(int)); - memset(&this->pages[oldlen], -1, (this->pagebuflen-oldlen)*sizeof(int)); - } } + + while(pdfpage >= this->pagebuflen) + { + int oldlen = this->pagebuflen; + this->pagebuflen+=1024; + this->pages = (int*)realloc(this->pages, this->pagebuflen*sizeof(int)); + memset(&this->pages[oldlen], -1, (this->pagebuflen-oldlen)*sizeof(int)); + } + this->pages[pdfpage] = outputpage; if(pdfpage>this->pagepos) this->pagepos = pdfpage;