Skip to content

Commit 5cc805a

Browse files
authored
refactor: change the type of prepare_list from raw pointer to std::unique_ptr (apache#1032)
1 parent 210b944 commit 5cc805a

File tree

5 files changed

+10
-17
lines changed

5 files changed

+10
-17
lines changed

src/replica/replica.cpp

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -167,11 +167,11 @@ void replica::init_state()
167167
_inactive_is_transient = false;
168168
_is_initializing = false;
169169
_deny_client_write = false;
170-
_prepare_list =
171-
new prepare_list(this,
172-
0,
173-
_options->max_mutation_count_in_prepare_list,
174-
std::bind(&replica::execute_mutation, this, std::placeholders::_1));
170+
_prepare_list = dsn::make_unique<prepare_list>(
171+
this,
172+
0,
173+
_options->max_mutation_count_in_prepare_list,
174+
std::bind(&replica::execute_mutation, this, std::placeholders::_1));
175175

176176
_config.ballot = 0;
177177
_config.pid.set_app_id(0);
@@ -189,12 +189,7 @@ void replica::init_state()
189189
replica::~replica(void)
190190
{
191191
close();
192-
193-
if (nullptr != _prepare_list) {
194-
delete _prepare_list;
195-
_prepare_list = nullptr;
196-
}
197-
192+
_prepare_list = nullptr;
198193
dinfo("%s: replica destroyed", name());
199194
}
200195

src/replica/replica.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -482,8 +482,7 @@ class replica : public serverlet<replica>, public ref_counter, public replica_ba
482482
uint64_t _last_checkpoint_generate_time_ms;
483483
uint64_t _next_checkpoint_interval_trigger_time_ms;
484484

485-
// prepare list
486-
prepare_list *_prepare_list;
485+
std::unique_ptr<prepare_list> _prepare_list;
487486

488487
// private prepare log (may be empty, depending on config)
489488
mutation_log_ptr _private_log;

src/replica/split/replica_split_manager.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -296,8 +296,7 @@ void replica_split_manager::child_copy_prepare_list(
296296

297297
// copy parent prepare list
298298
plist->set_committer(std::bind(&replica::execute_mutation, _replica, std::placeholders::_1));
299-
delete _replica->_prepare_list;
300-
_replica->_prepare_list = new prepare_list(this, *plist);
299+
_replica->_prepare_list.reset(new prepare_list(this, *plist));
301300
for (decree d = last_committed_decree + 1; d <= _replica->_prepare_list->max_decree(); ++d) {
302301
mutation_ptr mu = _replica->_prepare_list->get_mutation_by_decree(d);
303302
dassert_replica(mu != nullptr, "can not find mutation, dercee={}", d);

src/replica/split/test/replica_split_test.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ class replica_split_test : public replica_test_base
129129
mu->set_logged();
130130
}
131131
}
132-
rep->_prepare_list = _mock_plist;
132+
rep->_prepare_list.reset(_mock_plist);
133133
}
134134

135135
void mock_parent_states()

src/replica/test/mock_utils.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ class mock_replica : public replica
149149
void set_replica_config(replica_configuration &config) { _config = config; }
150150
void set_partition_status(partition_status::type status) { _config.status = status; }
151151
void set_last_committed_decree(decree d) { _prepare_list->reset(d); }
152-
prepare_list *get_plist() { return _prepare_list; }
152+
prepare_list *get_plist() const { return _prepare_list.get(); }
153153
void prepare_list_truncate(decree d) { _prepare_list->truncate(d); }
154154
void prepare_list_commit_hard(decree d) { _prepare_list->commit(d, COMMIT_TO_DECREE_HARD); }
155155
decree get_app_last_committed_decree() { return _app->last_committed_decree(); }

0 commit comments

Comments
 (0)