void Launchpad::OnLoaderPrepared(LoaderContext* loader_context) {
_W("Loader is prepared. name(%s), pid(%d)",
loader_context->GetLoaderName().c_str(), loader_context->GetPid());
- loader_context->Unref();
+ if (loader_context->RefCount() == 0)
+ return;
auto iter = pending_requests_.begin();
while (iter != pending_requests_.end()) {
auto request = *iter;
auto context = request->GetAvailableLoaderContext();
if (context != nullptr && context.get() == loader_context) {
+ loader_context->Unref();
pending_requests_.erase(iter);
LaunchRequestDo(request);
LaunchRequestComplete(request);