optionally omit cleaning up vector when closing vector stream

allows reusing the vector

Makefile updates
This commit is contained in:
ac-stef
2017-06-02 14:30:31 +02:00
parent e5b99e6da4
commit d5e00f9e89
3 changed files with 112 additions and 113 deletions
+5 -4
View File
@@ -762,9 +762,10 @@ struct vecstream : stream
{
vector<uchar> *data;
int pointer;
bool autodelete;
vecstream(vector<uchar> *s) : data(s), pointer(0) {}
~vecstream() { DELETEP(data); }
vecstream(vector<uchar> *s, bool autodelete) : data(s), pointer(0), autodelete(autodelete) {}
~vecstream() { if(autodelete) { DELETEP(data); } }
void close() { DELETEP(data); }
bool end() { return data ? pointer >= data->length() : true; }
@@ -881,9 +882,9 @@ struct memstream : stream
}
};
stream *openvecfile(vector<uchar> *s)
stream *openvecfile(vector<uchar> *s, bool autodelete)
{
return new vecstream(s ? s : new vector<uchar>);
return new vecstream(s ? s : new vector<uchar>, autodelete);
}
stream *openmemfile(const uchar *buf, int size, int *refcnt)