Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/pdf/xpdf/Stream.cc
diff options
context:
space:
mode:
authorMichael Meeks <mmeeks@src.gnome.org>1999-08-20 21:43:22 (GMT)
committer Michael Meeks <mmeeks@src.gnome.org>1999-08-20 21:43:22 (GMT)
commitfedba8db5f2a32dbfffee5699ee71365871fe45a (patch)
treeb799b028e5cea807fa524bb8d722d1c26039994c /pdf/xpdf/Stream.cc
parentbf3b381529f5388bd1bda8ed8fafb247a7b8a9fc (diff)
Fixed vicious bug in stream stuff, should work now.
Diffstat (limited to 'pdf/xpdf/Stream.cc')
-rw-r--r--pdf/xpdf/Stream.cc23
1 files changed, 15 insertions, 8 deletions
diff --git a/pdf/xpdf/Stream.cc b/pdf/xpdf/Stream.cc
index c15d517..08b806a 100644
--- a/pdf/xpdf/Stream.cc
+++ b/pdf/xpdf/Stream.cc
@@ -544,7 +544,7 @@ FILE *fileOpen (GString *fileName1) {
GString *fileName2;
// try to open file
fileName2 = NULL;
- FILE *file;
+ FILE *file = NULL;
#ifdef VMS
if (!(file = fopen(fileName->getCString(), "rb", "ctx=stm"))) {
@@ -569,6 +569,9 @@ FILE *fileOpen (GString *fileName1) {
return file;
}
+FileStream::FileStream() {
+}
+
FileStream::FileStream(FILE *f1) {
f = f1;
start = 0;
@@ -577,16 +580,20 @@ FileStream::FileStream(FILE *f1) {
bufPos = start;
savePos = -1;
dict.initNull();
- checkHeader();
+ if (f)
+ checkHeader();
}
Stream *FileStream::subStream (int start1, int length1, Object *dict1) {
- start = start1;
- length = length1;
- bufPtr = bufEnd = buf;
- bufPos = start;
- savePos = -1;
- dict = *dict1;
+ FileStream *scp = new FileStream ();
+ scp->f = f;
+ scp->start = start1;
+ scp->length = length1;
+ scp->bufPtr = bufEnd = buf;
+ scp->bufPos = start;
+ scp->savePos = -1;
+ scp->dict = *dict1;
+ return scp;
}
FileStream::~FileStream() {