As json format is one big string we can directly read the content of file with one call to getline()
without going through generic interface to first read into stringstream and then create again a temorary
string from the stringstream buffer.
vCritical << "failed to open file = " << path.c_str();
return false;
} else {
- std::stringstream buf;
- buf << f.rdbuf();
+ std::string content;
- LottieParser parser(const_cast<char *>(buf.str().data()),
+ std::getline(f, content, '\0') ;
+ f.close();
+
+ if (content.empty()) return false;
+
+ const char *str = content.c_str();
+ LottieParser parser(const_cast<char *>(str),
dirname(path).c_str());
mModel = parser.model();
if (cachePolicy)
LottieModelCache::instance().add(path, mModel);
-
- f.close();
}
return true;