this->info = info;
this->doc = doc;
this->xref = doc->getXRef();
-
+
this->jpeginfo = 0;
this->textmodeinfo = 0;
this->linkinfo = 0;
this->config_multiply = 1;
this->gfxfontlist = gfxfontlist_create();
+ this->dashPattern = 0;
memset(states, 0, sizeof(states));
this->featurewarnings = 0;
m.ty = (y0 + y1)/2 - 0.5;
device->fillgradient(device, &p1, g, gfxgradient_linear, &m);
+
+ free(g);
return gTrue;
}
msg("<trace> | phase: %f", this->dashStart);
for(t=0;t<this->dashLength;t++) {
dash[t] = (float)this->dashPattern[t] * f;
+ if(!dash[t])
+ dash[t] = 1e-37;
msg("<trace> | d%-3d: %f", t, this->dashPattern[t]);
}
dash[this->dashLength] = -1;
if(this->pages) {
free(this->pages); this->pages = 0;
}
+ if(this->dashPattern) {
+ free(this->dashPattern);this->dashPattern = 0;
+ }
feature_t*f = this->featurewarnings;
while(f) {
void GFXOutputDev::updateLineDash(GfxState *state)
{
- state->getLineDash(&this->dashPattern, &this->dashLength, &this->dashStart);
+ if(this->dashPattern) {
+ free(this->dashPattern);this->dashPattern = 0;
+ }
+ double *pattern = 0;
+ state->getLineDash(&pattern, &this->dashLength, &this->dashStart);
msg("<debug> updateLineDash, %d dashes", this->dashLength);
if(!this->dashLength) {
this->dashPattern = 0;
+ } else {
+ double*p = (double*)malloc(this->dashLength*sizeof(this->dashPattern[0]));
+ memcpy(p, pattern, this->dashLength*sizeof(this->dashPattern[0]));
+ this->dashPattern = p;
}
}
imgStr = new ImageStream(str, width, ncomps,bits);
imgStr->reset();
- if(!width || !height || (height<=1 && width<=1 && maskWidth<=1 && maskHeight<=1))
+ if(!width || !height || ((height+width)<=1 && (maskWidth+maskHeight)<=1))
{
msg("<verbose> Ignoring %d by %d image", width, height);
unsigned char buf[8];