MCPcopy Create free account
hub / github.com/Tencent/MMKV / checkFileHasDiskError

Method checkFileHasDiskError

Core/MMKV_IO.cpp:217–243  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

215}
216
217bool MMKV::checkFileHasDiskError() {
218 if (m_isSecondLoad) {
219 return false;
220 }
221 m_isSecondLoad = true;
222
223 bool needReportReadFail = false;
224 if (isDiskOfMMAPFileCorrupted(m_metaFile, needReportReadFail)) {
225 m_metaFile->clearMemoryCache();
226 deleteOrRenameFile(m_metaFile->getPath());
227 m_metaFile->reloadFromFile();
228 }
229
230 if (!m_file->isFileValid()) {
231 m_file->reloadFromFile(m_expectedCapacity);
232 }
233 if (!m_file->isFileValid()) {
234 MMKVError("file [%s] not valid", m_file->getPath().c_str());
235 return false;
236 }
237 if (isDiskOfMMAPFileCorrupted(m_file, needReportReadFail)) {
238 m_file->clearMemoryCache();
239 deleteOrRenameFile(m_file->getPath());
240 m_file->reloadFromFile(m_expectedCapacity);
241 }
242 return needReportReadFail;
243}
244
245void MMKV::loadMetaInfoAndCheck() {
246 if (!m_metaFile->isFileValid()) {

Callers

nothing calls this directly

Calls 5

deleteOrRenameFileFunction · 0.85
clearMemoryCacheMethod · 0.45
reloadFromFileMethod · 0.45
isFileValidMethod · 0.45

Tested by

no test coverage detected