git.asbjorn.biz
/
swftools.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
488cb09
)
moved feature list into class, fixed some memleaks
author
kramm
<kramm>
Sun, 6 Apr 2008 16:50:43 +0000
(16:50 +0000)
committer
kramm
<kramm>
Sun, 6 Apr 2008 16:50:43 +0000
(16:50 +0000)
lib/pdf/GFXOutputDev.cc
patch
|
blob
|
history
lib/pdf/GFXOutputDev.h
patch
|
blob
|
history
diff --git
a/lib/pdf/GFXOutputDev.cc
b/lib/pdf/GFXOutputDev.cc
index
08016cc
..
a61aebc
100644
(file)
--- a/
lib/pdf/GFXOutputDev.cc
+++ b/
lib/pdf/GFXOutputDev.cc
@@
-152,16
+152,9
@@
static void dbg(const char*format, ...)
}
}
-typedef struct _feature
-{
- char*string;
- struct _feature*next;
-} feature_t;
-feature_t*featurewarnings = 0;
-
void GFXOutputDev::showfeature(const char*feature, char fully, char warn)
{
void GFXOutputDev::showfeature(const char*feature, char fully, char warn)
{
- feature_t*f = featurewarnings;
+ feature_t*f = this->featurewarnings;
while(f) {
if(!strcmp(feature, f->string))
return;
while(f) {
if(!strcmp(feature, f->string))
return;
@@
-169,8
+162,8
@@
void GFXOutputDev::showfeature(const char*feature, char fully, char warn)
}
f = (feature_t*)malloc(sizeof(feature_t));
f->string = strdup(feature);
}
f = (feature_t*)malloc(sizeof(feature_t));
f->string = strdup(feature);
- f->next = featurewarnings;
- featurewarnings = f;
+ f->next = this->featurewarnings;
+ this->featurewarnings = f;
if(warn) {
msg("<warning> %s not yet %ssupported!",feature,fully?"fully ":"");
if(this->config_break_on_warning) {
if(warn) {
msg("<warning> %s not yet %ssupported!",feature,fully?"fully ":"");
if(this->config_break_on_warning) {
@@
-582,6
+575,7
@@
GFXOutputDev::GFXOutputDev(InfoOutputDev*info, PDFDoc*doc)
this->gfxfontlist = gfxfontlist_create();
memset(states, 0, sizeof(states));
this->gfxfontlist = gfxfontlist_create();
memset(states, 0, sizeof(states));
+ this->featurewarnings = 0;
};
void GFXOutputDev::setParameter(const char*key, const char*value)
};
void GFXOutputDev::setParameter(const char*key, const char*value)
@@
-1218,6
+1212,18
@@
GFXOutputDev::~GFXOutputDev()
if(this->pages) {
free(this->pages); this->pages = 0;
}
if(this->pages) {
free(this->pages); this->pages = 0;
}
+
+ feature_t*f = this->featurewarnings;
+ while(f) {
+ feature_t*next = f->next;
+ if(f->string) {
+ free(f->string);f->string =0;
+ }
+ f->next = 0;
+ free(f);
+ f = next;
+ }
+ this->featurewarnings = 0;
gfxfontlist_free(this->gfxfontlist, 1);this->gfxfontlist = 0;
};
gfxfontlist_free(this->gfxfontlist, 1);this->gfxfontlist = 0;
};
@@
-2114,14
+2120,14
@@
void GFXOutputDev::drawGeneralImage(GfxState *state, Object *ref, Stream *str,
if(!pbminfo && !(str->getKind()==strDCT)) {
if(!type3active) {
if(!pbminfo && !(str->getKind()==strDCT)) {
if(!type3active) {
- msg("<notice> file contains pbm pictures %s",mask?"(masked)":"");
+ msg("<notice> File contains pbm pictures %s",mask?"(masked)":"");
pbminfo = 1;
}
if(mask)
msg("<verbose> drawing %d by %d masked picture", width, height);
}
if(!jpeginfo && (str->getKind()==strDCT)) {
pbminfo = 1;
}
if(mask)
msg("<verbose> drawing %d by %d masked picture", width, height);
}
if(!jpeginfo && (str->getKind()==strDCT)) {
- msg("<notice> file contains jpeg pictures");
+ msg("<notice> File contains jpeg pictures");
jpeginfo = 1;
}
jpeginfo = 1;
}
@@
-2664,14
+2670,13
@@
void GFXOutputDev::clearSoftMask(GfxState *state)
gfxresult_record_replay(below, &uniondev);
gfxline_t*belowoutline = gfxdevice_union_getunion(&uniondev);
uniondev.finish(&uniondev);
gfxresult_record_replay(below, &uniondev);
gfxline_t*belowoutline = gfxdevice_union_getunion(&uniondev);
uniondev.finish(&uniondev);
-
gfxbbox_t bbox = gfxline_getbbox(belowoutline);
gfxbbox_t bbox = gfxline_getbbox(belowoutline);
+ gfxline_free(belowoutline);belowoutline=0;
#if 0
this->device->startclip(this->device, belowoutline);
gfxresult_record_replay(below, this->device);
gfxresult_record_replay(mask, this->device);
this->device->endclip(this->device);
#if 0
this->device->startclip(this->device, belowoutline);
gfxresult_record_replay(below, this->device);
gfxresult_record_replay(mask, this->device);
this->device->endclip(this->device);
- gfxline_free(belowoutline);
#endif
int width = (int)bbox.xmax,height = (int)bbox.ymax;
#endif
int width = (int)bbox.xmax,height = (int)bbox.ymax;
diff --git
a/lib/pdf/GFXOutputDev.h
b/lib/pdf/GFXOutputDev.h
index
89c6185
..
51e6312
100644
(file)
--- a/
lib/pdf/GFXOutputDev.h
+++ b/
lib/pdf/GFXOutputDev.h
@@
-38,6
+38,12
@@
typedef struct _parameter
struct _parameter*next;
} parameter_t;
struct _parameter*next;
} parameter_t;
+typedef struct _feature
+{
+ char*string;
+ struct _feature*next;
+} feature_t;
+
void addGlobalFont(const char*filename);
void addGlobalLanguageDir(const char*dir);
void addGlobalFontDir(const char*dirname);
void addGlobalFont(const char*filename);
void addGlobalLanguageDir(const char*dir);
void addGlobalFontDir(const char*dirname);
@@
-216,6
+222,8
@@
public:
void warnfeature(const char*feature,char fully);
void infofeature(const char*feature);
void warnfeature(const char*feature,char fully);
void infofeature(const char*feature);
+ feature_t*featurewarnings;
+
char outer_clip_box; //whether the page clip box is still on
gfxfontlist_t*gfxfontlist;
char outer_clip_box; //whether the page clip box is still on
gfxfontlist_t*gfxfontlist;