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

Method removeDataForKey

Core/MMKV_IO.cpp:830–900  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

828}
829
830bool MMKV::removeDataForKey(MMKVKey_t key) {
831 if (isKeyEmpty(key)) {
832 return false;
833 }
834#ifndef MMKV_DISABLE_CRYPT
835 if (m_crypter) {
836 auto itr = m_dicCrypt->find(key);
837 if (itr != m_dicCrypt->end()) {
838 m_hasFullWriteback = false;
839 static MMBuffer nan;
840# ifdef MMKV_APPLE
841 auto ret = appendDataWithKey(nan, key, itr->second);
842 if (ret.first) {
843 if (mmkv_unlikely(m_enableKeyExpire)) {
844 // filterExpiredKeys() may invalid itr
845 itr = m_dicCrypt->find(key);
846 if (itr == m_dicCrypt->end()) {
847 return true;
848 }
849 }
850 auto oldKey = itr->first;
851 m_dicCrypt->erase(itr);
852 [oldKey release];
853 }
854# else
855 auto ret = appendDataWithKey(nan, key);
856 if (ret.first) {
857 if (mmkv_unlikely(m_enableKeyExpire)) {
858 eraseHelper(*m_dicCrypt, key);
859 } else {
860 m_dicCrypt->erase(itr);
861 }
862 }
863# endif
864 return ret.first;
865 }
866 } else
867#endif // MMKV_DISABLE_CRYPT
868 {
869 auto itr = m_dic->find(key);
870 if (itr != m_dic->end()) {
871 m_hasFullWriteback = false;
872 static MMBuffer nan;
873 auto ret = mmkv_likely(!m_enableKeyExpire) ? appendDataWithKey(nan, itr->second) : appendDataWithKey(nan, key);
874 if (ret.first) {
875#ifdef MMKV_APPLE
876 if (mmkv_unlikely(m_enableKeyExpire)) {
877 // filterExpiredKeys() may invalid itr
878 itr = m_dic->find(key);
879 if (itr == m_dic->end()) {
880 return true;
881 }
882 }
883 auto oldKey = itr->first;
884 m_dic->erase(itr);
885 [oldKey release];
886#else
887 if (mmkv_unlikely(m_enableKeyExpire)) {

Callers

nothing calls this directly

Calls 2

isKeyEmptyFunction · 0.85
eraseHelperFunction · 0.85

Tested by

no test coverage detected