replaced "string FileStorage::release()" with 2 methods to preserve backward compatibility.

pull/2/head
Vadim Pisarevsky 13 years ago
parent 48c3cfdfd0
commit 74882fe188
  1. 4
      modules/core/include/opencv2/core/core.hpp
  2. 20
      modules/core/src/persistence.cpp
  3. 3
      modules/core/test/test_io.cpp

@ -3976,7 +3976,9 @@ public:
//! returns true if the object is associated with currently opened file.
CV_WRAP virtual bool isOpened() const;
//! closes the file and releases all the memory buffers
CV_WRAP virtual string release();
CV_WRAP virtual void release();
//! closes the file, releases all the memory buffers and returns the text string
CV_WRAP_AS(releaseAndGetString) virtual void release(CV_OUT string& buf);
//! returns the first element of the top-level mapping
CV_WRAP FileNode getFirstTopLevelNode() const;

@ -5154,19 +5154,25 @@ bool FileStorage::isOpened() const
return !fs.empty() && fs.obj->is_opened;
}
string FileStorage::release()
void FileStorage::release()
{
string buf;
if( fs.obj && fs.obj->outbuf )
icvClose(fs.obj, &buf);
fs.release();
structs.clear();
state = UNDEFINED;
return buf;
}
void FileStorage::release(string& buf)
{
if( fs.obj && fs.obj->outbuf )
icvClose(fs.obj, &buf);
else
buf.clear();
fs.release();
structs.clear();
state = UNDEFINED;
}
FileNode FileStorage::root(int streamidx) const
{
return isOpened() ? FileNode(fs, cvGetRootFileNode(fs, streamidx)) : FileNode();

@ -180,7 +180,8 @@ protected:
fs.writeObj("test_graph",graph);
CvGraph* graph2 = (CvGraph*)cvClone(graph);
string content = fs.release();
string content;
fs.release(content);
if(!fs.open(mem ? content : filename, FileStorage::READ + (mem ? FileStorage::MEMORY : 0)))
{

Loading…
Cancel
Save