diff --git a/src/storage/meta_mem/ob_meta_pointer_map.h b/src/storage/meta_mem/ob_meta_pointer_map.h index 4bb224ce10..62eabfacb1 100644 --- a/src/storage/meta_mem/ob_meta_pointer_map.h +++ b/src/storage/meta_mem/ob_meta_pointer_map.h @@ -553,8 +553,9 @@ int ObMetaPointerMap::get_meta_obj_with_external_memory( } else { bool need_free_obj = false; T *t = nullptr; + t = new (buf) T(); do { - t = new (buf) T(); + t->reset(); if (OB_FAIL(load_meta_obj(key, t_ptr, allocator, disk_addr, t, false/*using_obj_pool*/))) { STORAGE_LOG(WARN, "load obj from disk fail", K(ret), K(key), KPC(t_ptr), K(lbt())); } else {