MCPcopy Create free account
hub / github.com/Tencent/Hardcoder / clear

Method clear

libapp2sys/prebuilt/include/google/protobuf/map.h:915–944  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

913 const_iterator end() const { return const_iterator(); }
914
915 void clear() {
916 for (size_type b = 0; b < num_buckets_; b++) {
917 if (TableEntryIsNonEmptyList(b)) {
918 Node* node = static_cast<Node*>(table_[b]);
919 table_[b] = NULL;
920 do {
921 Node* next = node->next;
922 DestroyNode(node);
923 node = next;
924 } while (node != NULL);
925 } else if (TableEntryIsTree(b)) {
926 Tree* tree = static_cast<Tree*>(table_[b]);
927 GOOGLE_DCHECK(table_[b] == table_[b + 1] && (b & 1) == 0);
928 table_[b] = table_[b + 1] = NULL;
929 typename Tree::iterator tree_it = tree->begin();
930 do {
931 Node* node = NodePtrFromKeyPtr(*tree_it);
932 typename Tree::iterator next = tree_it;
933 ++next;
934 tree->erase(tree_it);
935 DestroyNode(node);
936 tree_it = next;
937 } while (tree_it != tree->end());
938 DestroyTree(tree);
939 b++;
940 }
941 }
942 num_elements_ = 0;
943 index_of_first_non_null_ = num_buckets_;
944 }
945
946 const hasher& hash_function() const { return *this; }
947

Callers

nothing calls this directly

Calls 3

beginMethod · 0.45
eraseMethod · 0.45
endMethod · 0.45

Tested by

no test coverage detected