aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAvatar Ciaran McCreesh <ciaran.mccreesh@googlemail.com> 2010-07-22 21:46:00 +0100
committerAvatar Ciaran McCreesh <ciaran.mccreesh@googlemail.com> 2010-07-22 21:46:00 +0100
commit4209b95ecc83365718b3dd5556a6866a662e95c5 (patch)
tree2adf8c110af7f7979685fa1a3743230f8c370c83
parent99ca317486703808bec65846a6266afdace5d0f7 (diff)
downloadpaludis-4209b95ecc83365718b3dd5556a6866a662e95c5.tar.gz
paludis-4209b95ecc83365718b3dd5556a6866a662e95c5.tar.xz
Less verbose PrivateImplementationPattern
-rw-r--r--paludis/about_metadata.cc2
-rw-r--r--paludis/action.cc14
-rw-r--r--paludis/args/args_group.cc4
-rw-r--r--paludis/args/args_handler.cc2
-rw-r--r--paludis/args/args_option.cc18
-rw-r--r--paludis/args/args_section.cc4
-rw-r--r--paludis/args/args_visitor.cc2
-rw-r--r--paludis/broken_linkage_configuration.cc2
-rw-r--r--paludis/broken_linkage_finder.cc2
-rw-r--r--paludis/buffer_output_manager.cc2
-rw-r--r--paludis/choice.cc4
-rw-r--r--paludis/comma_separated_dep_printer.cc2
-rw-r--r--paludis/contents.cc6
-rw-r--r--paludis/create_output_manager_info.cc10
-rw-r--r--paludis/dep_list.cc2
-rw-r--r--paludis/dep_spec.cc18
-rw-r--r--paludis/dep_spec_flattener.cc3
-rw-r--r--paludis/dep_tag.cc4
-rw-r--r--paludis/distribution-impl.hh2
-rw-r--r--paludis/distribution.cc2
-rw-r--r--paludis/elf_linkage_checker.cc2
-rw-r--r--paludis/elike_annotations.cc2
-rw-r--r--paludis/environment_factory.cc2
-rw-r--r--paludis/environment_implementation.cc2
-rw-r--r--paludis/environments/no_config/no_config_environment.cc3
-rw-r--r--paludis/environments/paludis/keywords_conf.cc2
-rw-r--r--paludis/environments/paludis/licenses_conf.cc2
-rw-r--r--paludis/environments/paludis/mirrors_conf.cc4
-rw-r--r--paludis/environments/paludis/output_conf.cc2
-rw-r--r--paludis/environments/paludis/package_mask_conf.cc2
-rw-r--r--paludis/environments/paludis/paludis_config.cc2
-rw-r--r--paludis/environments/paludis/paludis_environment.cc3
-rw-r--r--paludis/environments/paludis/use_conf.cc2
-rw-r--r--paludis/environments/paludis/world.cc2
-rw-r--r--paludis/environments/portage/portage_environment.cc2
-rw-r--r--paludis/environments/test/test_environment.cc4
-rw-r--r--paludis/file_output_manager.cc2
-rw-r--r--paludis/filter.cc4
-rw-r--r--paludis/filtered_generator.cc8
-rw-r--r--paludis/format_messages_output_manager.cc3
-rw-r--r--paludis/forward_at_finish_output_manager.cc3
-rw-r--r--paludis/fuzzy_finder.cc4
-rw-r--r--paludis/generator.cc4
-rw-r--r--paludis/handled_information.cc6
-rw-r--r--paludis/hook.cc12
-rw-r--r--paludis/hooker.cc2
-rw-r--r--paludis/install_task.cc2
-rw-r--r--paludis/ipc_output_manager.cc6
-rw-r--r--paludis/libtool_linkage_checker.cc2
-rw-r--r--paludis/literal_metadata_key.cc10
-rw-r--r--paludis/merger.cc2
-rw-r--r--paludis/metadata_key_holder.cc4
-rw-r--r--paludis/ndbam.cc2
-rw-r--r--paludis/ndbam_merger.cc2
-rw-r--r--paludis/ndbam_unmerger.cc2
-rw-r--r--paludis/notifier_callback.cc2
-rw-r--r--paludis/output_manager_factory.cc2
-rw-r--r--paludis/output_manager_from_environment.cc3
-rw-r--r--paludis/package_database.cc2
-rw-r--r--paludis/package_id.cc6
-rw-r--r--paludis/paludislike_options_conf.cc2
-rw-r--r--paludis/query_visitor.cc2
-rw-r--r--paludis/range_rewriter.cc2
-rw-r--r--paludis/report_task.cc2
-rw-r--r--paludis/repositories/accounts/accounts_dep_key.cc2
-rw-r--r--paludis/repositories/accounts/accounts_id.cc2
-rw-r--r--paludis/repositories/accounts/accounts_repository.cc4
-rw-r--r--paludis/repositories/accounts/accounts_repository_store.cc3
-rw-r--r--paludis/repositories/accounts/installed_accounts_id.cc2
-rw-r--r--paludis/repositories/cran/cran_installed_repository.cc2
-rw-r--r--paludis/repositories/cran/cran_package_id.cc4
-rw-r--r--paludis/repositories/cran/cran_repository.cc2
-rw-r--r--paludis/repositories/cran/dep_spec_pretty_printer.cc4
-rw-r--r--paludis/repositories/cran/description_file.cc4
-rw-r--r--paludis/repositories/cran/keys.cc2
-rw-r--r--paludis/repositories/cran/masks.cc4
-rw-r--r--paludis/repositories/e/aa_visitor.cc2
-rw-r--r--paludis/repositories/e/check_fetched_files_visitor.cc2
-rw-r--r--paludis/repositories/e/dep_spec_pretty_printer.cc4
-rw-r--r--paludis/repositories/e/dependencies_rewriter.cc2
-rw-r--r--paludis/repositories/e/e_choices_key.cc2
-rw-r--r--paludis/repositories/e/e_installed_repository.cc2
-rw-r--r--paludis/repositories/e/e_installed_repository_id.cc2
-rw-r--r--paludis/repositories/e/e_key.cc24
-rw-r--r--paludis/repositories/e/e_mask.cc8
-rw-r--r--paludis/repositories/e/e_repository.cc2
-rw-r--r--paludis/repositories/e/e_repository_mask_file.cc2
-rw-r--r--paludis/repositories/e/e_repository_news.cc6
-rw-r--r--paludis/repositories/e/e_repository_sets.cc2
-rw-r--r--paludis/repositories/e/e_stripper.cc2
-rw-r--r--paludis/repositories/e/eapi.cc6
-rw-r--r--paludis/repositories/e/eapi_phase.cc4
-rw-r--r--paludis/repositories/e/ebuild_flat_metadata_cache.cc2
-rw-r--r--paludis/repositories/e/ebuild_id.cc2
-rw-r--r--paludis/repositories/e/eclass_mtimes.cc4
-rw-r--r--paludis/repositories/e/exheres_layout.cc2
-rw-r--r--paludis/repositories/e/exheres_profile.cc3
-rw-r--r--paludis/repositories/e/exndbam_repository.cc2
-rw-r--r--paludis/repositories/e/fetch_visitor.cc2
-rw-r--r--paludis/repositories/e/glsa.cc6
-rw-r--r--paludis/repositories/e/info_metadata_key.cc6
-rw-r--r--paludis/repositories/e/manifest2_reader.cc2
-rw-r--r--paludis/repositories/e/memoised_hashes.cc2
-rw-r--r--paludis/repositories/e/metadata_xml.cc2
-rw-r--r--paludis/repositories/e/myoptions_requirements_verifier.cc2
-rw-r--r--paludis/repositories/e/pretend_fetch_visitor.cc2
-rw-r--r--paludis/repositories/e/profile_file.cc4
-rw-r--r--paludis/repositories/e/source_uri_finder.cc4
-rw-r--r--paludis/repositories/e/traditional_layout.cc2
-rw-r--r--paludis/repositories/e/traditional_profile.cc3
-rw-r--r--paludis/repositories/e/use_desc.cc2
-rw-r--r--paludis/repositories/e/vdb_merger.cc2
-rw-r--r--paludis/repositories/e/vdb_repository.cc2
-rw-r--r--paludis/repositories/e/vdb_unmerger.cc2
-rw-r--r--paludis/repositories/e/xml_things_handle.cc2
-rw-r--r--paludis/repositories/fake/fake_installed_repository.cc3
-rw-r--r--paludis/repositories/fake/fake_package_id.cc18
-rw-r--r--paludis/repositories/fake/fake_repository.cc2
-rw-r--r--paludis/repositories/fake/fake_repository_base.cc2
-rw-r--r--paludis/repositories/gems/gem_specification.cc4
-rw-r--r--paludis/repositories/gems/gem_specifications.cc2
-rw-r--r--paludis/repositories/gems/gems_repository.cc2
-rw-r--r--paludis/repositories/gems/installed_gems_repository.cc2
-rw-r--r--paludis/repositories/gems/yaml.cc10
-rw-r--r--paludis/repositories/repository/repository_id.cc2
-rw-r--r--paludis/repositories/repository/repository_repository.cc2
-rw-r--r--paludis/repositories/repository/repository_repository_store.cc2
-rw-r--r--paludis/repositories/unavailable/unavailable_package_id.cc2
-rw-r--r--paludis/repositories/unavailable/unavailable_repository.cc2
-rw-r--r--paludis/repositories/unavailable/unavailable_repository_dependencies_key.cc3
-rw-r--r--paludis/repositories/unavailable/unavailable_repository_file.cc2
-rw-r--r--paludis/repositories/unavailable/unavailable_repository_id.cc2
-rw-r--r--paludis/repositories/unavailable/unavailable_repository_store.cc2
-rw-r--r--paludis/repositories/unpackaged/installed_id.cc2
-rw-r--r--paludis/repositories/unpackaged/installed_repository.cc2
-rw-r--r--paludis/repositories/unpackaged/unpackaged_id.cc2
-rw-r--r--paludis/repositories/unpackaged/unpackaged_key.cc4
-rw-r--r--paludis/repositories/unpackaged/unpackaged_repository.cc2
-rw-r--r--paludis/repositories/unpackaged/unpackaged_stripper.cc2
-rw-r--r--paludis/repositories/unwritten/unwritten_id.cc2
-rw-r--r--paludis/repositories/unwritten/unwritten_repository.cc2
-rw-r--r--paludis/repositories/unwritten/unwritten_repository_file.cc2
-rw-r--r--paludis/repositories/unwritten/unwritten_repository_store.cc2
-rw-r--r--paludis/repositories/virtuals/installed_virtuals_repository.cc3
-rw-r--r--paludis/repositories/virtuals/package_id.cc5
-rw-r--r--paludis/repositories/virtuals/virtuals_repository.cc3
-rw-r--r--paludis/repository.cc2
-rw-r--r--paludis/repository_factory.cc2
-rw-r--r--paludis/repository_name_cache.cc3
-rw-r--r--paludis/resolver/constraint.cc2
-rw-r--r--paludis/resolver/decider.cc2
-rw-r--r--paludis/resolver/decision.cc14
-rw-r--r--paludis/resolver/decisions.cc2
-rw-r--r--paludis/resolver/job.cc8
-rw-r--r--paludis/resolver/job_list.cc2
-rw-r--r--paludis/resolver/job_state.cc6
-rw-r--r--paludis/resolver/nag.cc2
-rw-r--r--paludis/resolver/orderer.cc2
-rw-r--r--paludis/resolver/reason.cc16
-rw-r--r--paludis/resolver/resolutions_by_resolvent.cc2
-rw-r--r--paludis/resolver/resolver.cc2
-rw-r--r--paludis/resolver/sanitised_dependencies.cc2
-rw-r--r--paludis/resolver/spec_rewriter.cc2
-rw-r--r--paludis/resolver/suggest_restart.cc8
-rw-r--r--paludis/selection.cc4
-rw-r--r--paludis/selection_cache.cc6
-rw-r--r--paludis/selinux/security_context.cc4
-rw-r--r--paludis/serialise.cc6
-rw-r--r--paludis/set_file.cc2
-rw-r--r--paludis/show_suggest_visitor.cc2
-rw-r--r--paludis/stringify_formatter-impl.hh64
-rw-r--r--paludis/stringify_formatter.cc23
-rw-r--r--paludis/stripper.cc4
-rw-r--r--paludis/sync_task.cc2
-rw-r--r--paludis/tee_output_manager.cc2
-rw-r--r--paludis/uninstall_list.cc2
-rw-r--r--paludis/uninstall_task.cc2
-rw-r--r--paludis/unmerger.cc4
-rw-r--r--paludis/user_dep_spec.cc2
-rw-r--r--paludis/util/action_queue.cc4
-rw-r--r--paludis/util/buffer_output_stream.cc2
-rw-r--r--paludis/util/config_file.cc12
-rw-r--r--paludis/util/damerau_levenshtein.cc2
-rw-r--r--paludis/util/dir_iterator.cc6
-rw-r--r--paludis/util/elf.cc2
-rw-r--r--paludis/util/elf_dynamic_section.cc4
-rw-r--r--paludis/util/elf_relocation_section.cc2
-rw-r--r--paludis/util/elf_symbol_section.cc2
-rw-r--r--paludis/util/executor.cc2
-rw-r--r--paludis/util/fs_entry.cc6
-rw-r--r--paludis/util/graph-impl.hh4
-rw-r--r--paludis/util/log.cc2
-rw-r--r--paludis/util/map-impl.hh2
-rw-r--r--paludis/util/options.cc6
-rw-r--r--paludis/util/private_implementation_pattern-impl.hh20
-rw-r--r--paludis/util/private_implementation_pattern.hh15
-rw-r--r--paludis/util/sequence-impl.hh2
-rw-r--r--paludis/util/set-impl.hh2
-rw-r--r--paludis/util/simple_parser.cc4
-rw-r--r--paludis/util/string_list_stream.cc4
-rw-r--r--paludis/util/system.cc22
-rw-r--r--paludis/util/tail_output_stream.cc4
-rw-r--r--paludis/util/tee_output_stream.cc4
-rw-r--r--paludis/util/thread_pool.cc2
-rw-r--r--paludis/util/wildcard_expander.cc7
-rw-r--r--paludis/version_spec.cc4
-rw-r--r--python/dep_spec.cc50
-rw-r--r--python/exception.cc2
-rw-r--r--ruby/paludis_ruby.cc2
-rw-r--r--src/clients/cave/cmd_resolve_display_callback.cc2
-rw-r--r--src/clients/cave/command_factory.cc2
-rw-r--r--src/clients/cave/script_command.cc2
-rw-r--r--src/clients/inquisitio/exact_matcher.cc4
-rw-r--r--src/clients/inquisitio/key_extractor.cc4
-rw-r--r--src/clients/inquisitio/pcre_matcher.cc4
-rw-r--r--src/clients/inquisitio/text_matcher.cc4
-rw-r--r--src/output/console_query_task.cc2
-rw-r--r--src/output/mask_displayer.cc4
-rw-r--r--test/test_framework.cc7
219 files changed, 481 insertions, 476 deletions
diff --git a/paludis/about_metadata.cc b/paludis/about_metadata.cc
index 5790fe1..eb427ed 100644
--- a/paludis/about_metadata.cc
+++ b/paludis/about_metadata.cc
@@ -62,7 +62,7 @@ namespace paludis
}
AboutMetadata::AboutMetadata() :
- PrivateImplementationPattern<AboutMetadata>(new Implementation<AboutMetadata>),
+ PrivateImplementationPattern<AboutMetadata>(),
_imp(PrivateImplementationPattern<AboutMetadata>::_imp)
{
add_metadata_key(_imp->package_key);
diff --git a/paludis/action.cc b/paludis/action.cc
index 05f966e..1007043 100644
--- a/paludis/action.cc
+++ b/paludis/action.cc
@@ -51,7 +51,7 @@ namespace paludis
}
InstallAction::InstallAction(const InstallActionOptions & o) :
- PrivateImplementationPattern<InstallAction>(new Implementation<InstallAction>(o)),
+ PrivateImplementationPattern<InstallAction>(o),
options(_imp->options)
{
}
@@ -75,7 +75,7 @@ namespace paludis
}
FetchAction::FetchAction(const FetchActionOptions & o) :
- PrivateImplementationPattern<FetchAction>(new Implementation<FetchAction>(o)),
+ PrivateImplementationPattern<FetchAction>(o),
options(_imp->options)
{
}
@@ -99,7 +99,7 @@ namespace paludis
}
UninstallAction::UninstallAction(const UninstallActionOptions & o) :
- PrivateImplementationPattern<UninstallAction>(new Implementation<UninstallAction>(o)),
+ PrivateImplementationPattern<UninstallAction>(o),
options(_imp->options)
{
}
@@ -125,7 +125,7 @@ namespace paludis
}
PretendAction::PretendAction(const PretendActionOptions & o) :
- PrivateImplementationPattern<PretendAction>(new Implementation<PretendAction>(o)),
+ PrivateImplementationPattern<PretendAction>(o),
options(_imp->options)
{
}
@@ -161,7 +161,7 @@ namespace paludis
}
PretendFetchAction::PretendFetchAction(const FetchActionOptions & o) :
- PrivateImplementationPattern<PretendFetchAction>(new Implementation<PretendFetchAction>(o)),
+ PrivateImplementationPattern<PretendFetchAction>(o),
options(_imp->options)
{
}
@@ -185,7 +185,7 @@ namespace paludis
}
InfoAction::InfoAction(const InfoActionOptions & o) :
- PrivateImplementationPattern<InfoAction>(new Implementation<InfoAction>(o)),
+ PrivateImplementationPattern<InfoAction>(o),
options(_imp->options)
{
}
@@ -209,7 +209,7 @@ namespace paludis
}
ConfigAction::ConfigAction(const ConfigActionOptions & o) :
- PrivateImplementationPattern<ConfigAction>(new Implementation<ConfigAction>(o)),
+ PrivateImplementationPattern<ConfigAction>(o),
options(_imp->options)
{
}
diff --git a/paludis/args/args_group.cc b/paludis/args/args_group.cc
index 620d084..bffa925 100644
--- a/paludis/args/args_group.cc
+++ b/paludis/args/args_group.cc
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2005, 2006, 2007, 2009 Ciaran McCreesh
+ * Copyright (c) 2005, 2006, 2007, 2009, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -48,7 +48,7 @@ namespace paludis
ArgsGroup::ArgsGroup(ArgsSection * s, const std::string & our_name,
const std::string & our_description) :
- PrivateImplementationPattern<ArgsGroup>(new Implementation<ArgsGroup>),
+ PrivateImplementationPattern<ArgsGroup>(),
_name(our_name),
_description(our_description),
_section(s)
diff --git a/paludis/args/args_handler.cc b/paludis/args/args_handler.cc
index a9fe8ce..e7ec47c 100644
--- a/paludis/args/args_handler.cc
+++ b/paludis/args/args_handler.cc
@@ -128,7 +128,7 @@ namespace paludis
}
ArgsHandler::ArgsHandler() :
- PrivateImplementationPattern<ArgsHandler>(new Implementation<ArgsHandler>)
+ PrivateImplementationPattern<ArgsHandler>()
{
}
diff --git a/paludis/args/args_option.cc b/paludis/args/args_option.cc
index 9f6fce2..0f162ba 100644
--- a/paludis/args/args_option.cc
+++ b/paludis/args/args_option.cc
@@ -197,7 +197,7 @@ StringSetArg::StringSetArg(ArgsGroup * const g, const std::string & our_long_nam
const char our_short_name, const std::string & our_description,
const StringSetArgOptions & opts) :
ArgsOption(g, our_long_name, our_short_name, our_description),
- PrivateImplementationPattern<StringSetArg>(new Implementation<StringSetArg>),
+ PrivateImplementationPattern<StringSetArg>(),
_validator(0)
{
std::copy(opts._imp->options.begin(), opts._imp->options.end(),
@@ -208,7 +208,7 @@ StringSetArg::StringSetArg(ArgsGroup * const g, const std::string & our_long_nam
const char our_short_name, const std::string & our_description,
const StringSetArgOptions & opts, void (* v) (const std::string &)) :
ArgsOption(g, our_long_name, our_short_name, our_description),
- PrivateImplementationPattern<StringSetArg>(new Implementation<StringSetArg>),
+ PrivateImplementationPattern<StringSetArg>(),
_validator(v)
{
std::copy(opts._imp->options.begin(), opts._imp->options.end(),
@@ -287,7 +287,7 @@ namespace paludis
StringSequenceArg::StringSequenceArg(ArgsGroup * const g, const std::string & our_long_name,
const char our_short_name, const std::string & our_description) :
ArgsOption(g, our_long_name, our_short_name, our_description),
- PrivateImplementationPattern<StringSequenceArg>(new Implementation<StringSequenceArg>)
+ PrivateImplementationPattern<StringSequenceArg>()
{
}
@@ -389,7 +389,7 @@ namespace paludis
}
StringSetArg::StringSetArgOptions::StringSetArgOptions(const std::string & opt, const std::string & desc) :
- PrivateImplementationPattern<StringSetArgOptions>(new Implementation<StringSetArgOptions>)
+ PrivateImplementationPattern<StringSetArgOptions>()
{
_imp->options.push_back(std::make_pair(opt, desc));
}
@@ -402,7 +402,7 @@ StringSetArg::StringSetArgOptions::operator() (const std::string & opt, const st
}
StringSetArg::StringSetArgOptions::StringSetArgOptions(const StringSetArg::StringSetArgOptions & o) :
- PrivateImplementationPattern<StringSetArgOptions>(new Implementation<StringSetArgOptions>)
+ PrivateImplementationPattern<StringSetArgOptions>()
{
std::copy(o._imp->options.begin(), o._imp->options.end(),
std::back_inserter(_imp->options));
@@ -413,7 +413,7 @@ StringSetArg::StringSetArgOptions::~StringSetArgOptions()
}
StringSetArg::StringSetArgOptions::StringSetArgOptions() :
- PrivateImplementationPattern<StringSetArgOptions>(new Implementation<StringSetArgOptions>)
+ PrivateImplementationPattern<StringSetArgOptions>()
{
}
@@ -446,7 +446,7 @@ EnumArg::~EnumArg()
}
EnumArg::EnumArgOptions::EnumArgOptions(const std::string & opt, const std::string & desc) :
- PrivateImplementationPattern<EnumArgOptions>(new Implementation<EnumArgOptions>)
+ PrivateImplementationPattern<EnumArgOptions>()
{
_imp->options.push_back(make_named_values<AllowedEnumArg>(
n::description() = desc,
@@ -456,7 +456,7 @@ EnumArg::EnumArgOptions::EnumArgOptions(const std::string & opt, const std::stri
}
EnumArg::EnumArgOptions::EnumArgOptions(const std::string & opt, const char s, const std::string & desc) :
- PrivateImplementationPattern<EnumArgOptions>(new Implementation<EnumArgOptions>)
+ PrivateImplementationPattern<EnumArgOptions>()
{
_imp->options.push_back(make_named_values<AllowedEnumArg>(
n::description() = desc,
@@ -495,7 +495,7 @@ EnumArg::EnumArg(ArgsGroup * const our_group, const std::string & our_long_name,
const char our_short_name, const std::string & our_description,
const EnumArgOptions & opts, const std::string & our_default_arg) :
ArgsOption(our_group, our_long_name, our_short_name, our_description),
- PrivateImplementationPattern<EnumArg>(new Implementation<EnumArg>),
+ PrivateImplementationPattern<EnumArg>(),
_argument(our_default_arg),
_default_arg(our_default_arg)
{
diff --git a/paludis/args/args_section.cc b/paludis/args/args_section.cc
index fba4ca3..2508e17 100644
--- a/paludis/args/args_section.cc
+++ b/paludis/args/args_section.cc
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2009 Ciaran McCreesh
+ * Copyright (c) 2009, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -51,7 +51,7 @@ namespace paludis
}
ArgsSection::ArgsSection(ArgsHandler * const h, const std::string & s) :
- PrivateImplementationPattern<ArgsSection>(new Implementation<ArgsSection>(h, s))
+ PrivateImplementationPattern<ArgsSection>(h, s)
{
h->add(this);
}
diff --git a/paludis/args/args_visitor.cc b/paludis/args/args_visitor.cc
index 71857d2..86104d2 100644
--- a/paludis/args/args_visitor.cc
+++ b/paludis/args/args_visitor.cc
@@ -64,7 +64,7 @@ namespace paludis
ArgsVisitor::ArgsVisitor(ArgsHandler::ArgsIterator * ai, ArgsHandler::ArgsIterator ae,
const std::string & env_prefix, char & s, bool n) :
- PrivateImplementationPattern<ArgsVisitor>(new Implementation<ArgsVisitor>(ai, ae, env_prefix, s, n))
+ PrivateImplementationPattern<ArgsVisitor>(ai, ae, env_prefix, s, n)
{
}
diff --git a/paludis/broken_linkage_configuration.cc b/paludis/broken_linkage_configuration.cc
index e25de8d..d2d43a6 100644
--- a/paludis/broken_linkage_configuration.cc
+++ b/paludis/broken_linkage_configuration.cc
@@ -136,7 +136,7 @@ namespace
}
BrokenLinkageConfiguration::BrokenLinkageConfiguration(const FSEntry & root) :
- PrivateImplementationPattern<BrokenLinkageConfiguration>(new Implementation<BrokenLinkageConfiguration>)
+ PrivateImplementationPattern<BrokenLinkageConfiguration>()
{
Context ctx("When loading broken linkage checker configuration for '" + stringify(root) + "':");
diff --git a/paludis/broken_linkage_finder.cc b/paludis/broken_linkage_finder.cc
index c72f5b8..f43670f 100644
--- a/paludis/broken_linkage_finder.cc
+++ b/paludis/broken_linkage_finder.cc
@@ -140,7 +140,7 @@ namespace
}
BrokenLinkageFinder::BrokenLinkageFinder(const Environment * env, const std::string & library) :
- PrivateImplementationPattern<BrokenLinkageFinder>(new Implementation<BrokenLinkageFinder>(env, library))
+ PrivateImplementationPattern<BrokenLinkageFinder>(env, library)
{
using namespace std::placeholders;
diff --git a/paludis/buffer_output_manager.cc b/paludis/buffer_output_manager.cc
index 6fb6fbd..7a4bf6c 100644
--- a/paludis/buffer_output_manager.cc
+++ b/paludis/buffer_output_manager.cc
@@ -45,7 +45,7 @@ namespace paludis
BufferOutputManager::BufferOutputManager(
const std::shared_ptr<OutputManager> & c) :
- PrivateImplementationPattern<BufferOutputManager>(new Implementation<BufferOutputManager>(c))
+ PrivateImplementationPattern<BufferOutputManager>(c)
{
}
diff --git a/paludis/choice.cc b/paludis/choice.cc
index fda1160..0c3c3e4 100644
--- a/paludis/choice.cc
+++ b/paludis/choice.cc
@@ -158,7 +158,7 @@ namespace paludis
}
Choices::Choices() :
- PrivateImplementationPattern<Choices>(new Implementation<Choices>)
+ PrivateImplementationPattern<Choices>()
{
}
@@ -244,7 +244,7 @@ namespace paludis
}
Choice::Choice(const ChoiceParams & p) :
- PrivateImplementationPattern<Choice>(new Implementation<Choice>(p))
+ PrivateImplementationPattern<Choice>(p)
{
}
diff --git a/paludis/comma_separated_dep_printer.cc b/paludis/comma_separated_dep_printer.cc
index 2761860..2e0a4ee 100644
--- a/paludis/comma_separated_dep_printer.cc
+++ b/paludis/comma_separated_dep_printer.cc
@@ -61,7 +61,7 @@ namespace paludis
CommaSeparatedDepPrinter::CommaSeparatedDepPrinter(const Environment * const e,
const DependencySpecTree::ItemFormatter & f, const bool flat) :
- PrivateImplementationPattern<CommaSeparatedDepPrinter>(new Implementation<CommaSeparatedDepPrinter>(e, f, 0, flat))
+ PrivateImplementationPattern<CommaSeparatedDepPrinter>(e, f, 0, flat)
{
}
diff --git a/paludis/contents.cc b/paludis/contents.cc
index 24b3b65..c9e7183 100644
--- a/paludis/contents.cc
+++ b/paludis/contents.cc
@@ -42,7 +42,7 @@ namespace paludis
}
ContentsEntry::ContentsEntry(const FSEntry & n) :
- PrivateImplementationPattern<ContentsEntry>(new Implementation<ContentsEntry>(n)),
+ PrivateImplementationPattern<ContentsEntry>(n),
_imp(PrivateImplementationPattern<ContentsEntry>::_imp)
{
add_metadata_key(_imp->location_key);
@@ -93,7 +93,7 @@ namespace paludis
}
ContentsSymEntry::ContentsSymEntry(const FSEntry & our_name, const std::string & our_target) :
- PrivateImplementationPattern<ContentsSymEntry>(new Implementation<ContentsSymEntry>(our_target)),
+ PrivateImplementationPattern<ContentsSymEntry>(our_target),
ContentsEntry(our_name),
_imp(PrivateImplementationPattern<ContentsSymEntry>::_imp)
{
@@ -126,7 +126,7 @@ namespace paludis
}
Contents::Contents() :
- PrivateImplementationPattern<Contents>(new Implementation<Contents>())
+ PrivateImplementationPattern<Contents>()
{
}
diff --git a/paludis/create_output_manager_info.cc b/paludis/create_output_manager_info.cc
index b392a85..51d37f2 100644
--- a/paludis/create_output_manager_info.cc
+++ b/paludis/create_output_manager_info.cc
@@ -138,9 +138,7 @@ CreateOutputManagerForPackageIDActionInfo::CreateOutputManagerForPackageIDAction
const Action & a,
const OutputExclusivity e,
const ClientOutputFeatures & c) :
- PrivateImplementationPattern<CreateOutputManagerForPackageIDActionInfo>(
- new Implementation<CreateOutputManagerForPackageIDActionInfo>(i, a.simple_name(),
- get_flags(a), e, c))
+ PrivateImplementationPattern<CreateOutputManagerForPackageIDActionInfo>(i, a.simple_name(), get_flags(a), e, c)
{
}
@@ -150,8 +148,7 @@ CreateOutputManagerForPackageIDActionInfo::CreateOutputManagerForPackageIDAction
const std::shared_ptr<const Set<std::string> > & f,
const OutputExclusivity e,
const ClientOutputFeatures & c) :
- PrivateImplementationPattern<CreateOutputManagerForPackageIDActionInfo>(
- new Implementation<CreateOutputManagerForPackageIDActionInfo>(i, a, f, e, c))
+ PrivateImplementationPattern<CreateOutputManagerForPackageIDActionInfo>(i, a, f, e, c)
{
}
@@ -222,8 +219,7 @@ CreateOutputManagerForPackageIDActionInfo::deserialise(Deserialisation & d)
CreateOutputManagerForRepositorySyncInfo::CreateOutputManagerForRepositorySyncInfo(
const RepositoryName & r, const OutputExclusivity e, const ClientOutputFeatures & c) :
- PrivateImplementationPattern<CreateOutputManagerForRepositorySyncInfo>(
- new Implementation<CreateOutputManagerForRepositorySyncInfo>(r, e, c))
+ PrivateImplementationPattern<CreateOutputManagerForRepositorySyncInfo>(r, e, c)
{
}
diff --git a/paludis/dep_list.cc b/paludis/dep_list.cc
index aaf7911..354d39f 100644
--- a/paludis/dep_list.cc
+++ b/paludis/dep_list.cc
@@ -1052,7 +1052,7 @@ DepList::AddVisitor::visit(const DependencySpecTree::NodeType<DependenciesLabels
}
DepList::DepList(const Environment * const e, const DepListOptions & o) :
- PrivateImplementationPattern<DepList>(new Implementation<DepList>(e, o))
+ PrivateImplementationPattern<DepList>(e, o)
{
}
diff --git a/paludis/dep_spec.cc b/paludis/dep_spec.cc
index 6929d83..0160525 100644
--- a/paludis/dep_spec.cc
+++ b/paludis/dep_spec.cc
@@ -64,7 +64,7 @@ namespace paludis
}
DepSpec::DepSpec() :
- PrivateImplementationPattern<DepSpec>(new Implementation<DepSpec>),
+ PrivateImplementationPattern<DepSpec>(),
_imp(PrivateImplementationPattern<DepSpec>::_imp)
{
}
@@ -141,7 +141,7 @@ namespace paludis
}
ConditionalDepSpec::ConditionalDepSpec(const std::shared_ptr<const ConditionalDepSpecData> & d) :
- PrivateImplementationPattern<ConditionalDepSpec>(new Implementation<ConditionalDepSpec>(d)),
+ PrivateImplementationPattern<ConditionalDepSpec>(d),
_imp(PrivateImplementationPattern<ConditionalDepSpec>::_imp)
{
}
@@ -159,7 +159,7 @@ namespace
ConditionalDepSpec::ConditionalDepSpec(const ConditionalDepSpec & other) :
Cloneable<DepSpec>(),
DepSpec(),
- PrivateImplementationPattern<ConditionalDepSpec>(new Implementation<ConditionalDepSpec>(other._imp->data)),
+ PrivateImplementationPattern<ConditionalDepSpec>(other._imp->data),
CloneUsingThis<DepSpec, ConditionalDepSpec>(other),
_imp(PrivateImplementationPattern<ConditionalDepSpec>::_imp)
{
@@ -544,7 +544,7 @@ namespace paludis
template <typename T_>
LabelsDepSpec<T_>::LabelsDepSpec() :
- PrivateImplementationPattern<LabelsDepSpec<T_> >(new Implementation<LabelsDepSpec<T_> >),
+ PrivateImplementationPattern<LabelsDepSpec<T_> >(),
_imp(PrivateImplementationPattern<LabelsDepSpec<T_> >::_imp)
{
}
@@ -615,7 +615,7 @@ namespace paludis
PackageDepSpec::PackageDepSpec(const std::shared_ptr<const PackageDepSpecData> & d) :
Cloneable<DepSpec>(),
StringDepSpec(d->as_string()),
- PrivateImplementationPattern<PackageDepSpec>(new Implementation<PackageDepSpec>(d, std::shared_ptr<const DepTag>())),
+ PrivateImplementationPattern<PackageDepSpec>(d, std::shared_ptr<const DepTag>()),
_imp(PrivateImplementationPattern<PackageDepSpec>::_imp)
{
set_annotations_key(d->annotations_key());
@@ -628,7 +628,7 @@ PackageDepSpec::~PackageDepSpec()
PackageDepSpec::PackageDepSpec(const PackageDepSpec & d) :
Cloneable<DepSpec>(d),
StringDepSpec(d._imp->data->as_string()),
- PrivateImplementationPattern<PackageDepSpec>(new Implementation<PackageDepSpec>(d._imp->data, d._imp->tag)),
+ PrivateImplementationPattern<PackageDepSpec>(d._imp->data, d._imp->tag),
CloneUsingThis<DepSpec, PackageDepSpec>(d),
_imp(PrivateImplementationPattern<PackageDepSpec>::_imp)
{
@@ -1088,17 +1088,17 @@ namespace paludis
}
PartiallyMadePackageDepSpec::PartiallyMadePackageDepSpec(const PartiallyMadePackageDepSpecOptions & o) :
- PrivateImplementationPattern<PartiallyMadePackageDepSpec>(new Implementation<PartiallyMadePackageDepSpec>(o))
+ PrivateImplementationPattern<PartiallyMadePackageDepSpec>(o)
{
}
PartiallyMadePackageDepSpec::PartiallyMadePackageDepSpec(const PartiallyMadePackageDepSpec & other) :
- PrivateImplementationPattern<PartiallyMadePackageDepSpec>(new Implementation<PartiallyMadePackageDepSpec>(*other._imp.get()))
+ PrivateImplementationPattern<PartiallyMadePackageDepSpec>(*other._imp.get())
{
}
PartiallyMadePackageDepSpec::PartiallyMadePackageDepSpec(const PackageDepSpec & other) :
- PrivateImplementationPattern<PartiallyMadePackageDepSpec>(new Implementation<PartiallyMadePackageDepSpec>(other))
+ PrivateImplementationPattern<PartiallyMadePackageDepSpec>(other)
{
}
diff --git a/paludis/dep_spec_flattener.cc b/paludis/dep_spec_flattener.cc
index ab6d08f..60917a1 100644
--- a/paludis/dep_spec_flattener.cc
+++ b/paludis/dep_spec_flattener.cc
@@ -76,8 +76,7 @@ namespace paludis
template <typename Heirarchy_, typename Item_>
DepSpecFlattener<Heirarchy_, Item_>::DepSpecFlattener(
const Environment * const env) :
- PrivateImplementationPattern<DepSpecFlattener<Heirarchy_, Item_> >(
- new Implementation<DepSpecFlattener<Heirarchy_, Item_> >(env)),
+ PrivateImplementationPattern<DepSpecFlattener<Heirarchy_, Item_> >(env),
_imp(PrivateImplementationPattern<DepSpecFlattener<Heirarchy_, Item_> >::_imp)
{
}
diff --git a/paludis/dep_tag.cc b/paludis/dep_tag.cc
index 5507af8..c0934a5 100644
--- a/paludis/dep_tag.cc
+++ b/paludis/dep_tag.cc
@@ -237,7 +237,7 @@ namespace paludis
}
GeneralSetDepTag::GeneralSetDepTag(const SetName & id, const std::string & r) :
- PrivateImplementationPattern<GeneralSetDepTag>(new Implementation<GeneralSetDepTag>(id, r))
+ PrivateImplementationPattern<GeneralSetDepTag>(id, r)
{
}
@@ -284,7 +284,7 @@ namespace paludis
}
DependencyDepTag::DependencyDepTag(const std::shared_ptr<const PackageID> & i, const PackageDepSpec & d) :
- PrivateImplementationPattern<DependencyDepTag>(new Implementation<DependencyDepTag>(i, d))
+ PrivateImplementationPattern<DependencyDepTag>(i, d)
{
}
diff --git a/paludis/distribution-impl.hh b/paludis/distribution-impl.hh
index aa9dfc6..1172f8b 100644
--- a/paludis/distribution-impl.hh
+++ b/paludis/distribution-impl.hh
@@ -39,7 +39,7 @@ namespace paludis
template <typename Data_>
ExtraDistributionData<Data_>::ExtraDistributionData() :
- PrivateImplementationPattern<ExtraDistributionData<Data_> >(new Implementation<ExtraDistributionData<Data_> >)
+ PrivateImplementationPattern<ExtraDistributionData<Data_> >()
{
}
diff --git a/paludis/distribution.cc b/paludis/distribution.cc
index b86bb38..68d7ff0 100644
--- a/paludis/distribution.cc
+++ b/paludis/distribution.cc
@@ -81,7 +81,7 @@ namespace paludis
}
DistributionData::DistributionData() :
- PrivateImplementationPattern<DistributionData>(new Implementation<DistributionData>)
+ PrivateImplementationPattern<DistributionData>()
{
}
diff --git a/paludis/elf_linkage_checker.cc b/paludis/elf_linkage_checker.cc
index 3492d89..19dc364 100644
--- a/paludis/elf_linkage_checker.cc
+++ b/paludis/elf_linkage_checker.cc
@@ -136,7 +136,7 @@ namespace paludis
}
ElfLinkageChecker::ElfLinkageChecker(const FSEntry & root, const std::string & library) :
- PrivateImplementationPattern<ElfLinkageChecker>(new Implementation<ElfLinkageChecker>(root, library))
+ PrivateImplementationPattern<ElfLinkageChecker>(root, library)
{
}
diff --git a/paludis/elike_annotations.cc b/paludis/elike_annotations.cc
index 8934d16..0d4f9ca 100644
--- a/paludis/elike_annotations.cc
+++ b/paludis/elike_annotations.cc
@@ -34,7 +34,7 @@ namespace paludis
}
ELikeAnnotations::ELikeAnnotations(const std::shared_ptr<const Map<std::string, std::string> > & m) :
- PrivateImplementationPattern<ELikeAnnotations>(new Implementation<ELikeAnnotations>)
+ PrivateImplementationPattern<ELikeAnnotations>()
{
for (Map<std::string, std::string>::ConstIterator k(m->begin()), k_end(m->end()) ;
k != k_end ; ++k)
diff --git a/paludis/environment_factory.cc b/paludis/environment_factory.cc
index 9e4e46a..ac1c316 100644
--- a/paludis/environment_factory.cc
+++ b/paludis/environment_factory.cc
@@ -70,7 +70,7 @@ namespace
}
EnvironmentFactory::EnvironmentFactory() :
- PrivateImplementationPattern<EnvironmentFactory>(new Implementation<EnvironmentFactory>)
+ PrivateImplementationPattern<EnvironmentFactory>()
{
using namespace environment_groups;
diff --git a/paludis/environment_implementation.cc b/paludis/environment_implementation.cc
index d1cbdfe..bb89726 100644
--- a/paludis/environment_implementation.cc
+++ b/paludis/environment_implementation.cc
@@ -124,7 +124,7 @@ namespace paludis
}
EnvironmentImplementation::EnvironmentImplementation() :
- PrivateImplementationPattern<EnvironmentImplementation>(new Implementation<EnvironmentImplementation>),
+ PrivateImplementationPattern<EnvironmentImplementation>(),
_imp(PrivateImplementationPattern<EnvironmentImplementation>::_imp)
{
}
diff --git a/paludis/environments/no_config/no_config_environment.cc b/paludis/environments/no_config/no_config_environment.cc
index 1b0141b..bece5fa 100644
--- a/paludis/environments/no_config/no_config_environment.cc
+++ b/paludis/environments/no_config/no_config_environment.cc
@@ -349,8 +349,7 @@ Implementation<NoConfigEnvironment>::initialise(NoConfigEnvironment * const env)
}
NoConfigEnvironment::NoConfigEnvironment(const no_config_environment::Params & params) :
- PrivateImplementationPattern<NoConfigEnvironment>(
- new Implementation<NoConfigEnvironment>(this, params)),
+ PrivateImplementationPattern<NoConfigEnvironment>(this, params),
_imp(PrivateImplementationPattern<NoConfigEnvironment>::_imp)
{
_imp->initialise(this);
diff --git a/paludis/environments/paludis/keywords_conf.cc b/paludis/environments/paludis/keywords_conf.cc
index e67d27e..935322e 100644
--- a/paludis/environments/paludis/keywords_conf.cc
+++ b/paludis/environments/paludis/keywords_conf.cc
@@ -74,7 +74,7 @@ namespace paludis
}
KeywordsConf::KeywordsConf(const PaludisEnvironment * const e) :
- PrivateImplementationPattern<KeywordsConf>(new Implementation<KeywordsConf>(e))
+ PrivateImplementationPattern<KeywordsConf>(e)
{
}
diff --git a/paludis/environments/paludis/licenses_conf.cc b/paludis/environments/paludis/licenses_conf.cc
index c2cc0d9..2c4fa4a 100644
--- a/paludis/environments/paludis/licenses_conf.cc
+++ b/paludis/environments/paludis/licenses_conf.cc
@@ -73,7 +73,7 @@ namespace paludis
}
LicensesConf::LicensesConf(const PaludisEnvironment * const e) :
- PrivateImplementationPattern<LicensesConf>(new Implementation<LicensesConf>(e))
+ PrivateImplementationPattern<LicensesConf>(e)
{
}
diff --git a/paludis/environments/paludis/mirrors_conf.cc b/paludis/environments/paludis/mirrors_conf.cc
index f3d0820..32f2985 100644
--- a/paludis/environments/paludis/mirrors_conf.cc
+++ b/paludis/environments/paludis/mirrors_conf.cc
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2007, 2008, 2009 Ciaran McCreesh
+ * Copyright (c) 2007, 2008, 2009, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -56,7 +56,7 @@ namespace paludis
}
MirrorsConf::MirrorsConf(const PaludisEnvironment * const e) :
- PrivateImplementationPattern<MirrorsConf>(new Implementation<MirrorsConf>(e))
+ PrivateImplementationPattern<MirrorsConf>(e)
{
}
diff --git a/paludis/environments/paludis/output_conf.cc b/paludis/environments/paludis/output_conf.cc
index 11807fe..22ece88 100644
--- a/paludis/environments/paludis/output_conf.cc
+++ b/paludis/environments/paludis/output_conf.cc
@@ -112,7 +112,7 @@ namespace paludis
}
OutputConf::OutputConf(const PaludisEnvironment * const e) :
- PrivateImplementationPattern<OutputConf>(new Implementation<OutputConf>(e))
+ PrivateImplementationPattern<OutputConf>(e)
{
}
diff --git a/paludis/environments/paludis/package_mask_conf.cc b/paludis/environments/paludis/package_mask_conf.cc
index 93af226..39a20f7 100644
--- a/paludis/environments/paludis/package_mask_conf.cc
+++ b/paludis/environments/paludis/package_mask_conf.cc
@@ -64,7 +64,7 @@ namespace paludis
}
PackageMaskConf::PackageMaskConf(const PaludisEnvironment * const e) :
- PrivateImplementationPattern<PackageMaskConf>(new Implementation<PackageMaskConf>(e))
+ PrivateImplementationPattern<PackageMaskConf>(e)
{
}
diff --git a/paludis/environments/paludis/paludis_config.cc b/paludis/environments/paludis/paludis_config.cc
index fdd9646..9a3f60f 100644
--- a/paludis/environments/paludis/paludis_config.cc
+++ b/paludis/environments/paludis/paludis_config.cc
@@ -383,7 +383,7 @@ PaludisConfigNoDirectoryError::PaludisConfigNoDirectoryError(const std::string &
}
PaludisConfig::PaludisConfig(PaludisEnvironment * const e, const std::string & suffix) :
- PrivateImplementationPattern<PaludisConfig>(new Implementation<PaludisConfig>(e))
+ PrivateImplementationPattern<PaludisConfig>(e)
{
using namespace std::placeholders;
diff --git a/paludis/environments/paludis/paludis_environment.cc b/paludis/environments/paludis/paludis_environment.cc
index 4a0ca1b..2895303 100644
--- a/paludis/environments/paludis/paludis_environment.cc
+++ b/paludis/environments/paludis/paludis_environment.cc
@@ -141,8 +141,7 @@ namespace paludis
}
PaludisEnvironment::PaludisEnvironment(const std::string & s) :
- PrivateImplementationPattern<PaludisEnvironment>(new Implementation<PaludisEnvironment>(
- this, std::shared_ptr<PaludisConfig>(new PaludisConfig(this, s)))),
+ PrivateImplementationPattern<PaludisEnvironment>(this, std::shared_ptr<PaludisConfig>(new PaludisConfig(this, s))),
_imp(PrivateImplementationPattern<PaludisEnvironment>::_imp)
{
Context context("When loading paludis environment:");
diff --git a/paludis/environments/paludis/use_conf.cc b/paludis/environments/paludis/use_conf.cc
index c537347..10fe3fc 100644
--- a/paludis/environments/paludis/use_conf.cc
+++ b/paludis/environments/paludis/use_conf.cc
@@ -51,7 +51,7 @@ namespace paludis
}
UseConf::UseConf(const PaludisEnvironment * const e) :
- PrivateImplementationPattern<UseConf>(new Implementation<UseConf>(e))
+ PrivateImplementationPattern<UseConf>(e)
{
}
diff --git a/paludis/environments/paludis/world.cc b/paludis/environments/paludis/world.cc
index 19f9ce4..06ed296 100644
--- a/paludis/environments/paludis/world.cc
+++ b/paludis/environments/paludis/world.cc
@@ -51,7 +51,7 @@ namespace paludis
}
World::World(const Environment * const e, const std::shared_ptr<const FSEntry> & f) :
- PrivateImplementationPattern<World>(new Implementation<World>(e, f))
+ PrivateImplementationPattern<World>(e, f)
{
}
diff --git a/paludis/environments/portage/portage_environment.cc b/paludis/environments/portage/portage_environment.cc
index 11ff499..92c81c2 100644
--- a/paludis/environments/portage/portage_environment.cc
+++ b/paludis/environments/portage/portage_environment.cc
@@ -222,7 +222,7 @@ namespace
}
PortageEnvironment::PortageEnvironment(const std::string & s) :
- PrivateImplementationPattern<PortageEnvironment>(new Implementation<PortageEnvironment>(this, s)),
+ PrivateImplementationPattern<PortageEnvironment>(this, s),
_imp(PrivateImplementationPattern<PortageEnvironment>::_imp)
{
using namespace std::placeholders;
diff --git a/paludis/environments/test/test_environment.cc b/paludis/environments/test/test_environment.cc
index 647a626..f62fc4e 100644
--- a/paludis/environments/test/test_environment.cc
+++ b/paludis/environments/test/test_environment.cc
@@ -64,13 +64,13 @@ namespace paludis
}
TestEnvironment::TestEnvironment() :
- PrivateImplementationPattern<TestEnvironment>(new Implementation<TestEnvironment>(this, FSEntry("/"))),
+ PrivateImplementationPattern<TestEnvironment>(this, FSEntry("/")),
_imp(PrivateImplementationPattern<TestEnvironment>::_imp)
{
}
TestEnvironment::TestEnvironment(const FSEntry & r) :
- PrivateImplementationPattern<TestEnvironment>(new Implementation<TestEnvironment>(this, r)),
+ PrivateImplementationPattern<TestEnvironment>(this, r),
_imp(PrivateImplementationPattern<TestEnvironment>::_imp)
{
}
diff --git a/paludis/file_output_manager.cc b/paludis/file_output_manager.cc
index 2242f0f..a2162a2 100644
--- a/paludis/file_output_manager.cc
+++ b/paludis/file_output_manager.cc
@@ -65,7 +65,7 @@ namespace paludis
FileOutputManager::FileOutputManager(const FSEntry & o, const bool k, const bool l,
const std::shared_ptr<OutputManager> & m, const std::string & s) :
- PrivateImplementationPattern<FileOutputManager>(new Implementation<FileOutputManager>(o, k, l, m, s))
+ PrivateImplementationPattern<FileOutputManager>(o, k, l, m, s)
{
}
diff --git a/paludis/filter.cc b/paludis/filter.cc
index d7b97b6..f486f95 100644
--- a/paludis/filter.cc
+++ b/paludis/filter.cc
@@ -51,12 +51,12 @@ namespace paludis
}
Filter::Filter(const std::shared_ptr<const FilterHandler> & h) :
- PrivateImplementationPattern<Filter>(new Implementation<Filter>(h))
+ PrivateImplementationPattern<Filter>(h)
{
}
Filter::Filter(const Filter & other) :
- PrivateImplementationPattern<Filter>(new Implementation<Filter>(other._imp->handler))
+ PrivateImplementationPattern<Filter>(other._imp->handler)
{
}
diff --git a/paludis/filtered_generator.cc b/paludis/filtered_generator.cc
index 620ee32..bc36a0f 100644
--- a/paludis/filtered_generator.cc
+++ b/paludis/filtered_generator.cc
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2008 Ciaran McCreesh
+ * Copyright (c) 2008, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -42,17 +42,17 @@ namespace paludis
}
FilteredGenerator::FilteredGenerator(const FilteredGenerator & other) :
- PrivateImplementationPattern<FilteredGenerator>(new Implementation<FilteredGenerator>(other._imp->generator, other._imp->filter))
+ PrivateImplementationPattern<FilteredGenerator>(other._imp->generator, other._imp->filter)
{
}
FilteredGenerator::FilteredGenerator(const Generator & g, const Filter & f) :
- PrivateImplementationPattern<FilteredGenerator>(new Implementation<FilteredGenerator>(g, f))
+ PrivateImplementationPattern<FilteredGenerator>(g, f)
{
}
FilteredGenerator::FilteredGenerator(const FilteredGenerator & g, const Filter & f) :
- PrivateImplementationPattern<FilteredGenerator>(new Implementation<FilteredGenerator>(g.generator(), filter::And(g.filter(), f)))
+ PrivateImplementationPattern<FilteredGenerator>(g.generator(), filter::And(g.filter(), f))
{
}
diff --git a/paludis/format_messages_output_manager.cc b/paludis/format_messages_output_manager.cc
index 8a63282..dff0c32 100644
--- a/paludis/format_messages_output_manager.cc
+++ b/paludis/format_messages_output_manager.cc
@@ -72,8 +72,7 @@ FormatMessagesOutputManager::FormatMessagesOutputManager(
const std::string & format_error,
const std::string & format_log,
const FormatMessagesOutputManagerFormatFunction & f) :
- PrivateImplementationPattern<FormatMessagesOutputManager>(new Implementation<FormatMessagesOutputManager>(
- child, format_debug, format_info, format_warn, format_error, format_log, f))
+ PrivateImplementationPattern<FormatMessagesOutputManager>(child, format_debug, format_info, format_warn, format_error, format_log, f)
{
}
diff --git a/paludis/forward_at_finish_output_manager.cc b/paludis/forward_at_finish_output_manager.cc
index b81f084..379a9c0 100644
--- a/paludis/forward_at_finish_output_manager.cc
+++ b/paludis/forward_at_finish_output_manager.cc
@@ -59,8 +59,7 @@ ForwardAtFinishOutputManager::ForwardAtFinishOutputManager(
const bool s,
const bool f,
const std::shared_ptr<OutputManager> & m) :
- PrivateImplementationPattern<ForwardAtFinishOutputManager>(
- new Implementation<ForwardAtFinishOutputManager>(s, f, m))
+ PrivateImplementationPattern<ForwardAtFinishOutputManager>(s, f, m)
{
}
diff --git a/paludis/fuzzy_finder.cc b/paludis/fuzzy_finder.cc
index 141cd86..d539bd3 100644
--- a/paludis/fuzzy_finder.cc
+++ b/paludis/fuzzy_finder.cc
@@ -131,7 +131,7 @@ namespace paludis
}
FuzzyCandidatesFinder::FuzzyCandidatesFinder(const Environment & e, const std::string & name, const Filter & filter) :
- PrivateImplementationPattern<FuzzyCandidatesFinder>(new Implementation<FuzzyCandidatesFinder>)
+ PrivateImplementationPattern<FuzzyCandidatesFinder>()
{
Generator g = generator::All();
std::string package(name);
@@ -192,7 +192,7 @@ namespace paludis
}
FuzzyRepositoriesFinder::FuzzyRepositoriesFinder(const Environment & e, const std::string & name) :
- PrivateImplementationPattern<FuzzyRepositoriesFinder>(new Implementation<FuzzyRepositoriesFinder>)
+ PrivateImplementationPattern<FuzzyRepositoriesFinder>()
{
DamerauLevenshtein distance_calculator(tolower_0_cost(name));
diff --git a/paludis/generator.cc b/paludis/generator.cc
index e3c3a45..cd9343a 100644
--- a/paludis/generator.cc
+++ b/paludis/generator.cc
@@ -55,12 +55,12 @@ namespace paludis
}
Generator::Generator(const std::shared_ptr<const GeneratorHandler> & h) :
- PrivateImplementationPattern<Generator>(new Implementation<Generator>(h))
+ PrivateImplementationPattern<Generator>(h)
{
}
Generator::Generator(const Generator & other) :
- PrivateImplementationPattern<Generator>(new Implementation<Generator>(other._imp->handler))
+ PrivateImplementationPattern<Generator>(other._imp->handler)
{
}
diff --git a/paludis/handled_information.cc b/paludis/handled_information.cc
index b61aa5a..6c349a3 100644
--- a/paludis/handled_information.cc
+++ b/paludis/handled_information.cc
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2007, 2008 Ciaran McCreesh
+ * Copyright (c) 2007, 2008, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -42,7 +42,7 @@ namespace paludis
}
DepListEntryHandledSkippedUnsatisfied::DepListEntryHandledSkippedUnsatisfied(const PackageDepSpec & s) :
- PrivateImplementationPattern<DepListEntryHandledSkippedUnsatisfied>(new Implementation<DepListEntryHandledSkippedUnsatisfied>(s))
+ PrivateImplementationPattern<DepListEntryHandledSkippedUnsatisfied>(s)
{
}
@@ -71,7 +71,7 @@ namespace paludis
}
DepListEntryHandledSkippedDependent::DepListEntryHandledSkippedDependent(const std::shared_ptr<const PackageID> & i) :
- PrivateImplementationPattern<DepListEntryHandledSkippedDependent>(new Implementation<DepListEntryHandledSkippedDependent>(i))
+ PrivateImplementationPattern<DepListEntryHandledSkippedDependent>(i)
{
}
diff --git a/paludis/hook.cc b/paludis/hook.cc
index 60d6724..c26b4fe 100644
--- a/paludis/hook.cc
+++ b/paludis/hook.cc
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2005, 2006, 2007, 2008, 2009 Ciaran McCreesh
+ * Copyright (c) 2005, 2006, 2007, 2008, 2009, 2010 Ciaran McCreesh
* Copyright (c) 2007 Piotr Jaroszyński
*
* This file is part of the Paludis package manager. Paludis is free software;
@@ -63,12 +63,12 @@ namespace paludis
}
Hook::AllowedOutputValues::AllowedOutputValues() :
- PrivateImplementationPattern<Hook::AllowedOutputValues>(new Implementation<Hook::AllowedOutputValues>)
+ PrivateImplementationPattern<Hook::AllowedOutputValues>()
{
}
Hook::AllowedOutputValues::AllowedOutputValues(const AllowedOutputValues & other) :
- PrivateImplementationPattern<Hook::AllowedOutputValues>(new Implementation<Hook::AllowedOutputValues>)
+ PrivateImplementationPattern<Hook::AllowedOutputValues>()
{
_imp->allowed_values = other._imp->allowed_values;
}
@@ -86,15 +86,13 @@ Hook::AllowedOutputValues::operator() (const std::string & v) const
}
Hook::Hook(const std::string & n) :
- PrivateImplementationPattern<Hook>(new Implementation<Hook>(n, std::map<std::string, std::string>(),
- std::set<std::string>())),
+ PrivateImplementationPattern<Hook>(n, std::map<std::string, std::string>(), std::set<std::string>()),
output_dest(hod_stdout)
{
}
Hook::Hook(const Hook & h) :
- PrivateImplementationPattern<Hook>(new Implementation<Hook>(h._imp->name, h._imp->extra_env,
- h._imp->allowed_values)),
+ PrivateImplementationPattern<Hook>(h._imp->name, h._imp->extra_env, h._imp->allowed_values),
output_dest(h.output_dest)
{
}
diff --git a/paludis/hooker.cc b/paludis/hooker.cc
index 6a9c19a..4664763 100644
--- a/paludis/hooker.cc
+++ b/paludis/hooker.cc
@@ -504,7 +504,7 @@ namespace paludis
}
Hooker::Hooker(const Environment * const e) :
- PrivateImplementationPattern<Hooker>(new Implementation<Hooker>(e))
+ PrivateImplementationPattern<Hooker>(e)
{
}
diff --git a/paludis/install_task.cc b/paludis/install_task.cc
index ae065eb..529adba 100644
--- a/paludis/install_task.cc
+++ b/paludis/install_task.cc
@@ -182,7 +182,7 @@ namespace paludis
InstallTask::InstallTask(Environment * const env, const DepListOptions & options,
const std::shared_ptr<const DestinationsSet> & d) :
- PrivateImplementationPattern<InstallTask>(new Implementation<InstallTask>(env, options, d))
+ PrivateImplementationPattern<InstallTask>(env, options, d)
{
}
diff --git a/paludis/ipc_output_manager.cc b/paludis/ipc_output_manager.cc
index f427a9f..90734a1 100644
--- a/paludis/ipc_output_manager.cc
+++ b/paludis/ipc_output_manager.cc
@@ -77,7 +77,7 @@ namespace paludis
}
IPCOutputManager::IPCOutputManager(const int r, const int w, const CreateOutputManagerInfo & i) :
- PrivateImplementationPattern<IPCOutputManager>(new Implementation<IPCOutputManager>(r, w))
+ PrivateImplementationPattern<IPCOutputManager>(r, w)
{
std::stringstream ser_stream;
Serialiser ser(ser_stream);
@@ -208,7 +208,7 @@ namespace paludis
IPCInputManager::IPCInputManager(const Environment * const e,
const std::function<void (const std::shared_ptr<OutputManager> &)> & c) :
- PrivateImplementationPattern<IPCInputManager>(new Implementation<IPCInputManager>(e, c))
+ PrivateImplementationPattern<IPCInputManager>(e, c)
{
}
@@ -407,7 +407,7 @@ OutputManagerFromIPC::OutputManagerFromIPC(const Environment * const e,
const std::shared_ptr<const PackageID> & i,
const OutputExclusivity x,
const ClientOutputFeatures & c) :
- PrivateImplementationPattern<OutputManagerFromIPC>(new Implementation<OutputManagerFromIPC>(e, i, x, c))
+ PrivateImplementationPattern<OutputManagerFromIPC>(e, i, x, c)
{
}
diff --git a/paludis/libtool_linkage_checker.cc b/paludis/libtool_linkage_checker.cc
index 5d9fd6b..c93f228 100644
--- a/paludis/libtool_linkage_checker.cc
+++ b/paludis/libtool_linkage_checker.cc
@@ -70,7 +70,7 @@ namespace
}
LibtoolLinkageChecker::LibtoolLinkageChecker(const FSEntry & root) :
- PrivateImplementationPattern<LibtoolLinkageChecker>(new Implementation<LibtoolLinkageChecker>(root))
+ PrivateImplementationPattern<LibtoolLinkageChecker>(root)
{
}
diff --git a/paludis/literal_metadata_key.cc b/paludis/literal_metadata_key.cc
index 846025a..2bed3e6 100644
--- a/paludis/literal_metadata_key.cc
+++ b/paludis/literal_metadata_key.cc
@@ -109,7 +109,7 @@ namespace paludis
LiteralMetadataFSEntrySequenceKey::LiteralMetadataFSEntrySequenceKey(const std::string & r, const std::string & h,
const MetadataKeyType t, const std::shared_ptr<const FSEntrySequence> & v) :
- PrivateImplementationPattern<LiteralMetadataFSEntrySequenceKey>(new Implementation<LiteralMetadataFSEntrySequenceKey>(r, h, t, v)),
+ PrivateImplementationPattern<LiteralMetadataFSEntrySequenceKey>(r, h, t, v),
_imp(PrivateImplementationPattern<LiteralMetadataFSEntrySequenceKey>::_imp)
{
}
@@ -159,7 +159,7 @@ LiteralMetadataFSEntrySequenceKey::type() const
LiteralMetadataStringSetKey::LiteralMetadataStringSetKey(const std::string & r, const std::string & h,
const MetadataKeyType t, const std::shared_ptr<const Set<std::string> > & v) :
- PrivateImplementationPattern<LiteralMetadataStringSetKey>(new Implementation<LiteralMetadataStringSetKey>(r, h, t, v)),
+ PrivateImplementationPattern<LiteralMetadataStringSetKey>(r, h, t, v),
_imp(PrivateImplementationPattern<LiteralMetadataStringSetKey>::_imp)
{
}
@@ -176,7 +176,7 @@ LiteralMetadataStringSetKey::value() const
LiteralMetadataStringSequenceKey::LiteralMetadataStringSequenceKey(const std::string & r, const std::string & h,
const MetadataKeyType t, const std::shared_ptr<const Sequence<std::string> > & v) :
- PrivateImplementationPattern<LiteralMetadataStringSequenceKey>(new Implementation<LiteralMetadataStringSequenceKey>(r, h, t, v)),
+ PrivateImplementationPattern<LiteralMetadataStringSequenceKey>(r, h, t, v),
_imp(PrivateImplementationPattern<LiteralMetadataStringSequenceKey>::_imp)
{
}
@@ -323,7 +323,7 @@ ExtraLiteralMetadataValueKeyMethods<std::shared_ptr<const PackageID> >::pretty_p
template <typename T_>
LiteralMetadataValueKey<T_>::LiteralMetadataValueKey(const std::string & r, const std::string & h,
const MetadataKeyType t, const T_ & v) :
- PrivateImplementationPattern<LiteralMetadataValueKey<T_> >(new Implementation<LiteralMetadataValueKey<T_> >(r, h, t, v)),
+ PrivateImplementationPattern<LiteralMetadataValueKey<T_> >(r, h, t, v),
_imp(PrivateImplementationPattern<LiteralMetadataValueKey<T_ > >::_imp)
{
}
@@ -362,7 +362,7 @@ namespace paludis
LiteralMetadataTimeKey::LiteralMetadataTimeKey(
const std::string & r, const std::string & h, const MetadataKeyType k, const Timestamp v) :
- PrivateImplementationPattern<LiteralMetadataTimeKey>(new Implementation<LiteralMetadataTimeKey>(r, h, k, v)),
+ PrivateImplementationPattern<LiteralMetadataTimeKey>(r, h, k, v),
_imp(PrivateImplementationPattern<LiteralMetadataTimeKey>::_imp)
{
}
diff --git a/paludis/merger.cc b/paludis/merger.cc
index b7322b2..f3772fe 100644
--- a/paludis/merger.cc
+++ b/paludis/merger.cc
@@ -79,7 +79,7 @@ MergerError::MergerError(const std::string & s) throw () :
}
Merger::Merger(const MergerParams & p) :
- PrivateImplementationPattern<Merger>(new Implementation<Merger>(p))
+ PrivateImplementationPattern<Merger>(p)
{
}
diff --git a/paludis/metadata_key_holder.cc b/paludis/metadata_key_holder.cc
index 729ba3b..39ea404 100644
--- a/paludis/metadata_key_holder.cc
+++ b/paludis/metadata_key_holder.cc
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2008, 2009 Ciaran McCreesh
+ * Copyright (c) 2008, 2009, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -46,7 +46,7 @@ namespace paludis
}
MetadataKeyHolder::MetadataKeyHolder() :
- PrivateImplementationPattern<MetadataKeyHolder>(new Implementation<MetadataKeyHolder>)
+ PrivateImplementationPattern<MetadataKeyHolder>()
{
}
diff --git a/paludis/ndbam.cc b/paludis/ndbam.cc
index 61a4b46..1f1750e 100644
--- a/paludis/ndbam.cc
+++ b/paludis/ndbam.cc
@@ -104,7 +104,7 @@ NDBAM::NDBAM(const FSEntry & l,
const std::function<bool (const std::string &)> & check_format,
const std::string & preferred_format,
const VersionSpecOptions & version_options) :
- PrivateImplementationPattern<NDBAM>(new Implementation<NDBAM>(l, version_options))
+ PrivateImplementationPattern<NDBAM>(l, version_options)
{
Context c("When checking NDBAM layout at '" + stringify(l) + "':");
if ((l / "ndbam.conf").exists())
diff --git a/paludis/ndbam_merger.cc b/paludis/ndbam_merger.cc
index ea22212..66bab84 100644
--- a/paludis/ndbam_merger.cc
+++ b/paludis/ndbam_merger.cc
@@ -79,7 +79,7 @@ NDBAMMerger::NDBAMMerger(const NDBAMMergerParams & p) :
n::options() = p.options(),
n::root() = p.root()
)),
- PrivateImplementationPattern<NDBAMMerger>(new Implementation<NDBAMMerger>(p)),
+ PrivateImplementationPattern<NDBAMMerger>(p),
_imp(PrivateImplementationPattern<NDBAMMerger>::_imp)
{
}
diff --git a/paludis/ndbam_unmerger.cc b/paludis/ndbam_unmerger.cc
index d3f5ae7..9f65f5d 100644
--- a/paludis/ndbam_unmerger.cc
+++ b/paludis/ndbam_unmerger.cc
@@ -74,7 +74,7 @@ NDBAMUnmerger::NDBAMUnmerger(const NDBAMUnmergerOptions & o) :
n::ignore() = o.ignore(),
n::root() = o.root()
)),
- PrivateImplementationPattern<NDBAMUnmerger>(new Implementation<NDBAMUnmerger>(o)),
+ PrivateImplementationPattern<NDBAMUnmerger>(o),
_imp(PrivateImplementationPattern<NDBAMUnmerger>::_imp.get())
{
}
diff --git a/paludis/notifier_callback.cc b/paludis/notifier_callback.cc
index 888eafb..a838e5f 100644
--- a/paludis/notifier_callback.cc
+++ b/paludis/notifier_callback.cc
@@ -76,7 +76,7 @@ namespace paludis
}
ScopedNotifierCallback::ScopedNotifierCallback(Environment * const e, const NotifierCallbackFunction & f) :
- PrivateImplementationPattern<ScopedNotifierCallback>(new Implementation<ScopedNotifierCallback>(e, f))
+ PrivateImplementationPattern<ScopedNotifierCallback>(e, f)
{
}
diff --git a/paludis/output_manager_factory.cc b/paludis/output_manager_factory.cc
index 2b163be..d1cf499 100644
--- a/paludis/output_manager_factory.cc
+++ b/paludis/output_manager_factory.cc
@@ -91,7 +91,7 @@ namespace paludis
}
OutputManagerFactory::OutputManagerFactory() :
- PrivateImplementationPattern<OutputManagerFactory>(new Implementation<OutputManagerFactory>)
+ PrivateImplementationPattern<OutputManagerFactory>()
{
/* we might want to make this plugin loadable at some point */
add_manager(BufferOutputManager::factory_managers(), BufferOutputManager::factory_create);
diff --git a/paludis/output_manager_from_environment.cc b/paludis/output_manager_from_environment.cc
index 730e145..cac5249 100644
--- a/paludis/output_manager_from_environment.cc
+++ b/paludis/output_manager_from_environment.cc
@@ -55,8 +55,7 @@ OutputManagerFromEnvironment::OutputManagerFromEnvironment(
const std::shared_ptr<const PackageID> & i,
const OutputExclusivity x,
const ClientOutputFeatures & c) :
- PrivateImplementationPattern<OutputManagerFromEnvironment>(new Implementation<OutputManagerFromEnvironment>(
- e, i, x, c))
+ PrivateImplementationPattern<OutputManagerFromEnvironment>(e, i, x, c)
{
}
diff --git a/paludis/package_database.cc b/paludis/package_database.cc
index 6b217be..1b02e8f 100644
--- a/paludis/package_database.cc
+++ b/paludis/package_database.cc
@@ -161,7 +161,7 @@ namespace paludis
}
PackageDatabase::PackageDatabase(const Environment * const e) :
- PrivateImplementationPattern<PackageDatabase>(new Implementation<PackageDatabase>)
+ PrivateImplementationPattern<PackageDatabase>()
{
_imp->environment = e;
}
diff --git a/paludis/package_id.cc b/paludis/package_id.cc
index c9d978d..aa0a80a 100644
--- a/paludis/package_id.cc
+++ b/paludis/package_id.cc
@@ -65,7 +65,7 @@ namespace paludis
}
PackageID::PackageID() :
- PrivateImplementationPattern<PackageID>(new Implementation<PackageID>),
+ PrivateImplementationPattern<PackageID>(),
_imp(PrivateImplementationPattern<PackageID>::_imp)
{
}
@@ -179,7 +179,7 @@ namespace paludis
}
PackageIDComparator::PackageIDComparator(const PackageDatabase * const db) :
- PrivateImplementationPattern<PackageIDComparator>(new Implementation<PackageIDComparator>)
+ PrivateImplementationPattern<PackageIDComparator>()
{
unsigned c(0);
for (PackageDatabase::RepositoryConstIterator r(db->begin_repositories()),
@@ -188,7 +188,7 @@ PackageIDComparator::PackageIDComparator(const PackageDatabase * const db) :
}
PackageIDComparator::PackageIDComparator(const PackageIDComparator & other) :
- PrivateImplementationPattern<PackageIDComparator>(new Implementation<PackageIDComparator>)
+ PrivateImplementationPattern<PackageIDComparator>()
{
_imp->m = other._imp->m;
}
diff --git a/paludis/paludislike_options_conf.cc b/paludis/paludislike_options_conf.cc
index 3af3940..355cb47 100644
--- a/paludis/paludislike_options_conf.cc
+++ b/paludis/paludislike_options_conf.cc
@@ -166,7 +166,7 @@ namespace paludis
}
PaludisLikeOptionsConf::PaludisLikeOptionsConf(const PaludisLikeOptionsConfParams & params) :
- PrivateImplementationPattern<PaludisLikeOptionsConf>(new Implementation<PaludisLikeOptionsConf>(params))
+ PrivateImplementationPattern<PaludisLikeOptionsConf>(params)
{
}
diff --git a/paludis/query_visitor.cc b/paludis/query_visitor.cc
index 397a91e..80fb4b4 100644
--- a/paludis/query_visitor.cc
+++ b/paludis/query_visitor.cc
@@ -63,7 +63,7 @@ namespace paludis
QueryVisitor::QueryVisitor(const DepList * const d, const std::shared_ptr<const DestinationsSet> & dd,
const Environment * const e, const std::shared_ptr<const PackageID> & id) :
- PrivateImplementationPattern<QueryVisitor>(new Implementation<QueryVisitor>(d, dd, e, id))
+ PrivateImplementationPattern<QueryVisitor>(d, dd, e, id)
{
}
diff --git a/paludis/range_rewriter.cc b/paludis/range_rewriter.cc
index e74f6ad..87bd5ee 100644
--- a/paludis/range_rewriter.cc
+++ b/paludis/range_rewriter.cc
@@ -207,7 +207,7 @@ namespace paludis
}
RangeRewriter::RangeRewriter() :
- PrivateImplementationPattern<RangeRewriter>(new Implementation<RangeRewriter>())
+ PrivateImplementationPattern<RangeRewriter>()
{
}
diff --git a/paludis/report_task.cc b/paludis/report_task.cc
index a752b07..bfefc30 100644
--- a/paludis/report_task.cc
+++ b/paludis/report_task.cc
@@ -128,7 +128,7 @@ namespace paludis
}
ReportTask::ReportTask(Environment * const env) :
- PrivateImplementationPattern<ReportTask>(new Implementation<ReportTask>(env))
+ PrivateImplementationPattern<ReportTask>(env)
{
}
diff --git a/paludis/repositories/accounts/accounts_dep_key.cc b/paludis/repositories/accounts/accounts_dep_key.cc
index 6627343..702ea4d 100644
--- a/paludis/repositories/accounts/accounts_dep_key.cc
+++ b/paludis/repositories/accounts/accounts_dep_key.cc
@@ -68,7 +68,7 @@ namespace paludis
AccountsDepKey::AccountsDepKey(const Environment * const e,
const std::shared_ptr<const Set<std::string> > & s) :
- PrivateImplementationPattern<AccountsDepKey>(new Implementation<AccountsDepKey>(e, s))
+ PrivateImplementationPattern<AccountsDepKey>(e, s)
{
}
diff --git a/paludis/repositories/accounts/accounts_id.cc b/paludis/repositories/accounts/accounts_id.cc
index 40c00f5..77b67a7 100644
--- a/paludis/repositories/accounts/accounts_id.cc
+++ b/paludis/repositories/accounts/accounts_id.cc
@@ -99,7 +99,7 @@ AccountsID::AccountsID(const Environment * const e,
const QualifiedPackageName & q, const std::shared_ptr<const Repository> & r,
const std::shared_ptr<const MetadataCollectionKey<Set<std::string> > > & f, const FSEntry & l,
const bool u, const bool m) :
- PrivateImplementationPattern<AccountsID>(new Implementation<AccountsID>(e, q, r, f, l, u, m)),
+ PrivateImplementationPattern<AccountsID>(e, q, r, f, l, u, m),
_imp(PrivateImplementationPattern<AccountsID>::_imp)
{
if (_imp->mask)
diff --git a/paludis/repositories/accounts/accounts_repository.cc b/paludis/repositories/accounts/accounts_repository.cc
index fd12970..2335a98 100644
--- a/paludis/repositories/accounts/accounts_repository.cc
+++ b/paludis/repositories/accounts/accounts_repository.cc
@@ -106,7 +106,7 @@ namespace paludis
}
AccountsRepository::AccountsRepository(const AccountsRepositoryParams & p) :
- PrivateImplementationPattern<AccountsRepository>(new Implementation<AccountsRepository>(this, p)),
+ PrivateImplementationPattern<AccountsRepository>(this, p),
Repository(
p.environment(),
p.name(),
@@ -124,7 +124,7 @@ AccountsRepository::AccountsRepository(const AccountsRepositoryParams & p) :
}
AccountsRepository::AccountsRepository(const InstalledAccountsRepositoryParams & p) :
- PrivateImplementationPattern<AccountsRepository>(new Implementation<AccountsRepository>(this, p)),
+ PrivateImplementationPattern<AccountsRepository>(this, p),
Repository(
p.environment(),
p.name(),
diff --git a/paludis/repositories/accounts/accounts_repository_store.cc b/paludis/repositories/accounts/accounts_repository_store.cc
index 4d00751..ff9ba0c 100644
--- a/paludis/repositories/accounts/accounts_repository_store.cc
+++ b/paludis/repositories/accounts/accounts_repository_store.cc
@@ -86,8 +86,7 @@ AccountsRepositoryStore::AccountsRepositoryStore(
const Environment * const env,
const AccountsRepository * const repo,
const bool installed) :
- PrivateImplementationPattern<AccountsRepositoryStore>(new Implementation<AccountsRepositoryStore>(
- env, repo, installed))
+ PrivateImplementationPattern<AccountsRepositoryStore>(env, repo, installed)
{
_load(repo->shared_from_this());
}
diff --git a/paludis/repositories/accounts/installed_accounts_id.cc b/paludis/repositories/accounts/installed_accounts_id.cc
index 1305da3..08eeea3 100644
--- a/paludis/repositories/accounts/installed_accounts_id.cc
+++ b/paludis/repositories/accounts/installed_accounts_id.cc
@@ -95,7 +95,7 @@ const std::shared_ptr<Set<std::string> > Implementation<InstalledAccountsID>::be
InstalledAccountsID::InstalledAccountsID(const Environment * const e,
const QualifiedPackageName & q, const std::shared_ptr<const Repository> & r, const bool u) :
- PrivateImplementationPattern<InstalledAccountsID>(new Implementation<InstalledAccountsID>(e, q, r, u)),
+ PrivateImplementationPattern<InstalledAccountsID>(e, q, r, u),
_imp(PrivateImplementationPattern<InstalledAccountsID>::_imp)
{
add_metadata_key(_imp->behaviours_key);
diff --git a/paludis/repositories/cran/cran_installed_repository.cc b/paludis/repositories/cran/cran_installed_repository.cc
index 7faffb2..1ae7bc2 100644
--- a/paludis/repositories/cran/cran_installed_repository.cc
+++ b/paludis/repositories/cran/cran_installed_repository.cc
@@ -170,7 +170,7 @@ CRANInstalledRepository::CRANInstalledRepository(const CRANInstalledRepositoryPa
n::provides_interface() = static_cast<RepositoryProvidesInterface *>(0),
n::virtuals_interface() = static_cast<RepositoryVirtualsInterface *>(0)
)),
- PrivateImplementationPattern<CRANInstalledRepository>(new Implementation<CRANInstalledRepository>(p)),
+ PrivateImplementationPattern<CRANInstalledRepository>(p),
_imp(PrivateImplementationPattern<CRANInstalledRepository>::_imp)
{
_add_metadata_keys();
diff --git a/paludis/repositories/cran/cran_package_id.cc b/paludis/repositories/cran/cran_package_id.cc
index 3bff511..a84bfce 100644
--- a/paludis/repositories/cran/cran_package_id.cc
+++ b/paludis/repositories/cran/cran_package_id.cc
@@ -108,7 +108,7 @@ namespace paludis
}
CRANPackageID::CRANPackageID(const Environment * const env, const std::shared_ptr<const CRANRepository> & r, const FSEntry & f) :
- PrivateImplementationPattern<CRANPackageID>(new Implementation<CRANPackageID>(env, r, f)),
+ PrivateImplementationPattern<CRANPackageID>(env, r, f),
_imp(PrivateImplementationPattern<CRANPackageID>::_imp)
{
Context context("When parsing file '" + stringify(f) + "' to create a CRAN Package ID:");
@@ -277,7 +277,7 @@ CRANPackageID::CRANPackageID(const Environment * const env, const std::shared_pt
CRANPackageID::CRANPackageID(const Environment * const e,
const std::shared_ptr<const CRANRepository> & c, const CRANPackageID * const r, const std::string & t) :
- PrivateImplementationPattern<CRANPackageID>(new Implementation<CRANPackageID>(e, c, r, t)),
+ PrivateImplementationPattern<CRANPackageID>(e, c, r, t),
_imp(PrivateImplementationPattern<CRANPackageID>::_imp)
{
Context context("When creating contained ID '" + stringify(t) + "' in " + stringify(*r) + "':");
diff --git a/paludis/repositories/cran/cran_repository.cc b/paludis/repositories/cran/cran_repository.cc
index d6cc72a..fadd8db 100644
--- a/paludis/repositories/cran/cran_repository.cc
+++ b/paludis/repositories/cran/cran_repository.cc
@@ -117,7 +117,7 @@ CRANRepository::CRANRepository(const CRANRepositoryParams & p) :
n::provides_interface() = static_cast<RepositoryProvidesInterface *>(0),
n::virtuals_interface() = static_cast<RepositoryVirtualsInterface *>(0)
)),
- PrivateImplementationPattern<CRANRepository>(new Implementation<CRANRepository>(p, std::make_shared<Mutex>())),
+ PrivateImplementationPattern<CRANRepository>(p, std::make_shared<Mutex>()),
_imp(PrivateImplementationPattern<CRANRepository>::_imp)
{
_add_metadata_keys();
diff --git a/paludis/repositories/cran/dep_spec_pretty_printer.cc b/paludis/repositories/cran/dep_spec_pretty_printer.cc
index 3a941f1..6d00eac 100644
--- a/paludis/repositories/cran/dep_spec_pretty_printer.cc
+++ b/paludis/repositories/cran/dep_spec_pretty_printer.cc
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2007, 2008, 2009 Ciaran McCreesh
+ * Copyright (c) 2007, 2008, 2009, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -64,7 +64,7 @@ namespace paludis
DepSpecPrettyPrinter::DepSpecPrettyPrinter(const Environment * const e,
const GenericSpecTree::ItemFormatter & f, const unsigned initial_indent, const bool multiline) :
- PrivateImplementationPattern<DepSpecPrettyPrinter>(new Implementation<DepSpecPrettyPrinter>(e, f, initial_indent, multiline))
+ PrivateImplementationPattern<DepSpecPrettyPrinter>(e, f, initial_indent, multiline)
{
}
diff --git a/paludis/repositories/cran/description_file.cc b/paludis/repositories/cran/description_file.cc
index a0ad9df..f61f301 100644
--- a/paludis/repositories/cran/description_file.cc
+++ b/paludis/repositories/cran/description_file.cc
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2007, 2008 Ciaran McCreesh
+ * Copyright (c) 2007, 2008, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -39,7 +39,7 @@ namespace paludis
}
DescriptionFile::DescriptionFile(const Source & sr) :
- PrivateImplementationPattern<DescriptionFile>(new Implementation<DescriptionFile>)
+ PrivateImplementationPattern<DescriptionFile>()
{
Context c("When parsing CRAN description file '" + sr.filename() + "':");
diff --git a/paludis/repositories/cran/keys.cc b/paludis/repositories/cran/keys.cc
index 3a00557..20df6a9 100644
--- a/paludis/repositories/cran/keys.cc
+++ b/paludis/repositories/cran/keys.cc
@@ -168,7 +168,7 @@ namespace paludis
DepKey::DepKey(const Environment * const e, const std::string & r, const std::string & h, const std::string & v,
const std::shared_ptr<const DependenciesLabelSequence> & s, const MetadataKeyType t) :
- PrivateImplementationPattern<DepKey>(new Implementation<DepKey>(e, v, s, r, h, t)),
+ PrivateImplementationPattern<DepKey>(e, v, s, r, h, t),
_imp(PrivateImplementationPattern<DepKey>::_imp)
{
}
diff --git a/paludis/repositories/cran/masks.cc b/paludis/repositories/cran/masks.cc
index 6850cec..067bbdc 100644
--- a/paludis/repositories/cran/masks.cc
+++ b/paludis/repositories/cran/masks.cc
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2007, 2008 Ciaran McCreesh
+ * Copyright (c) 2007, 2008, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -42,7 +42,7 @@ namespace paludis
}
BrokenMask::BrokenMask(const char c, const std::string & d, const std::string & e) :
- PrivateImplementationPattern<BrokenMask>(new Implementation<BrokenMask>(c, d, e))
+ PrivateImplementationPattern<BrokenMask>(c, d, e)
{
}
diff --git a/paludis/repositories/e/aa_visitor.cc b/paludis/repositories/e/aa_visitor.cc
index 3d34be5..0322ffe 100644
--- a/paludis/repositories/e/aa_visitor.cc
+++ b/paludis/repositories/e/aa_visitor.cc
@@ -51,7 +51,7 @@ namespace paludis
}
AAVisitor::AAVisitor() :
- PrivateImplementationPattern<AAVisitor>(new Implementation<AAVisitor>)
+ PrivateImplementationPattern<AAVisitor>()
{
}
diff --git a/paludis/repositories/e/check_fetched_files_visitor.cc b/paludis/repositories/e/check_fetched_files_visitor.cc
index c371143..991391c 100644
--- a/paludis/repositories/e/check_fetched_files_visitor.cc
+++ b/paludis/repositories/e/check_fetched_files_visitor.cc
@@ -118,7 +118,7 @@ CheckFetchedFilesVisitor::CheckFetchedFilesVisitor(
const bool x,
const bool u,
const bool nm) :
- PrivateImplementationPattern<CheckFetchedFilesVisitor>(new Implementation<CheckFetchedFilesVisitor>(e, i, d, c, n, m2, um, md, x, u, nm))
+ PrivateImplementationPattern<CheckFetchedFilesVisitor>(e, i, d, c, n, m2, um, md, x, u, nm)
{
}
diff --git a/paludis/repositories/e/dep_spec_pretty_printer.cc b/paludis/repositories/e/dep_spec_pretty_printer.cc
index dd9a65f..ed91bad 100644
--- a/paludis/repositories/e/dep_spec_pretty_printer.cc
+++ b/paludis/repositories/e/dep_spec_pretty_printer.cc
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2006, 2007, 2008, 2009 Ciaran McCreesh
+ * Copyright (c) 2006, 2007, 2008, 2009, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -93,7 +93,7 @@ DepSpecPrettyPrinter::DepSpecPrettyPrinter(
unsigned i,
bool b,
bool c) :
- PrivateImplementationPattern<DepSpecPrettyPrinter>(new Implementation<DepSpecPrettyPrinter>(e, id, f, i, b, c))
+ PrivateImplementationPattern<DepSpecPrettyPrinter>(e, id, f, i, b, c)
{
}
diff --git a/paludis/repositories/e/dependencies_rewriter.cc b/paludis/repositories/e/dependencies_rewriter.cc
index 5c5329f..a000e24 100644
--- a/paludis/repositories/e/dependencies_rewriter.cc
+++ b/paludis/repositories/e/dependencies_rewriter.cc
@@ -82,7 +82,7 @@ namespace paludis
}
DependenciesRewriter::DependenciesRewriter() :
- PrivateImplementationPattern<DependenciesRewriter>(new Implementation<DependenciesRewriter>)
+ PrivateImplementationPattern<DependenciesRewriter>()
{
}
diff --git a/paludis/repositories/e/e_choices_key.cc b/paludis/repositories/e/e_choices_key.cc
index bde164d..a2dfa9e 100644
--- a/paludis/repositories/e/e_choices_key.cc
+++ b/paludis/repositories/e/e_choices_key.cc
@@ -92,7 +92,7 @@ EChoicesKey::EChoicesKey(
const std::string & r, const std::string & h, const MetadataKeyType t,
const std::shared_ptr<const ERepository> & p,
const std::shared_ptr<const Map<ChoiceNameWithPrefix, std::string> > & d) :
- PrivateImplementationPattern<EChoicesKey>(new Implementation<EChoicesKey>(e, i, p, d, r, h, t))
+ PrivateImplementationPattern<EChoicesKey>(e, i, p, d, r, h, t)
{
}
diff --git a/paludis/repositories/e/e_installed_repository.cc b/paludis/repositories/e/e_installed_repository.cc
index df915b7..675b164 100644
--- a/paludis/repositories/e/e_installed_repository.cc
+++ b/paludis/repositories/e/e_installed_repository.cc
@@ -73,7 +73,7 @@ namespace paludis
EInstalledRepository::EInstalledRepository(const EInstalledRepositoryParams & p,
const RepositoryName & n, const RepositoryCapabilities & c) :
Repository(p.environment(), n, c),
- PrivateImplementationPattern<EInstalledRepository>(new Implementation<EInstalledRepository>(p)),
+ PrivateImplementationPattern<EInstalledRepository>(p),
_imp(PrivateImplementationPattern<EInstalledRepository>::_imp)
{
}
diff --git a/paludis/repositories/e/e_installed_repository_id.cc b/paludis/repositories/e/e_installed_repository_id.cc
index 28b1142..f5d7799 100644
--- a/paludis/repositories/e/e_installed_repository_id.cc
+++ b/paludis/repositories/e/e_installed_repository_id.cc
@@ -163,7 +163,7 @@ EInstalledRepositoryID::EInstalledRepositoryID(const QualifiedPackageName & q, c
const Environment * const e,
const std::shared_ptr<const Repository> & r,
const FSEntry & f) :
- PrivateImplementationPattern<EInstalledRepositoryID>(new Implementation<EInstalledRepositoryID>(q, v, e, r, f)),
+ PrivateImplementationPattern<EInstalledRepositoryID>(q, v, e, r, f),
_imp(PrivateImplementationPattern<EInstalledRepositoryID>::_imp)
{
}
diff --git a/paludis/repositories/e/e_key.cc b/paludis/repositories/e/e_key.cc
index 087793c..3650f3a 100644
--- a/paludis/repositories/e/e_key.cc
+++ b/paludis/repositories/e/e_key.cc
@@ -139,7 +139,7 @@ EDependenciesKey::EDependenciesKey(
const std::shared_ptr<const ERepositoryID> & id,
const std::string & r, const std::string & h, const std::string & v,
const std::shared_ptr<const DependenciesLabelSequence> & l, const MetadataKeyType t) :
- PrivateImplementationPattern<EDependenciesKey>(new Implementation<EDependenciesKey>(e, id, v, l, r, h, t))
+ PrivateImplementationPattern<EDependenciesKey>(e, id, v, l, r, h, t)
{
}
@@ -232,7 +232,7 @@ ELicenseKey::ELicenseKey(
const Environment * const e,
const std::shared_ptr<const ERepositoryID> & id,
const std::shared_ptr<const EAPIMetadataVariable> & m, const std::string & v, const MetadataKeyType t) :
- PrivateImplementationPattern<ELicenseKey>(new Implementation<ELicenseKey>(e, id, v, m, t))
+ PrivateImplementationPattern<ELicenseKey>(e, id, v, m, t)
{
}
@@ -319,7 +319,7 @@ namespace paludis
EFetchableURIKey::EFetchableURIKey(const Environment * const e,
const std::shared_ptr<const ERepositoryID> & id,
const std::shared_ptr<const EAPIMetadataVariable> & m, const std::string & v, const MetadataKeyType t) :
- PrivateImplementationPattern<EFetchableURIKey>(new Implementation<EFetchableURIKey>(e, id, m, v, t))
+ PrivateImplementationPattern<EFetchableURIKey>(e, id, m, v, t)
{
}
@@ -444,7 +444,7 @@ namespace paludis
ESimpleURIKey::ESimpleURIKey(const Environment * const e,
const std::shared_ptr<const ERepositoryID> & id,
const std::string & r, const std::string & h, const std::string & v, const MetadataKeyType t) :
- PrivateImplementationPattern<ESimpleURIKey>(new Implementation<ESimpleURIKey>(e, id, v, r, h, t))
+ PrivateImplementationPattern<ESimpleURIKey>(e, id, v, r, h, t)
{
}
@@ -531,7 +531,7 @@ namespace paludis
EPlainTextSpecKey::EPlainTextSpecKey(const Environment * const e,
const std::shared_ptr<const ERepositoryID> & id,
const std::shared_ptr<const EAPIMetadataVariable> & m, const std::string & v, const MetadataKeyType t) :
- PrivateImplementationPattern<EPlainTextSpecKey>(new Implementation<EPlainTextSpecKey>(e, id, v, m, t))
+ PrivateImplementationPattern<EPlainTextSpecKey>(e, id, v, m, t)
{
}
@@ -619,7 +619,7 @@ namespace paludis
EMyOptionsKey::EMyOptionsKey(const Environment * const e,
const std::shared_ptr<const ERepositoryID> & id,
const std::string & r, const std::string & h, const std::string & v, const MetadataKeyType t) :
- PrivateImplementationPattern<EMyOptionsKey>(new Implementation<EMyOptionsKey>(e, id, v, r, h, t))
+ PrivateImplementationPattern<EMyOptionsKey>(e, id, v, r, h, t)
{
}
@@ -706,7 +706,7 @@ namespace paludis
EProvideKey::EProvideKey(const Environment * const e, const std::shared_ptr<const ERepositoryID> & id,
const std::string & r, const std::string & h, const std::string & v, const MetadataKeyType t) :
- PrivateImplementationPattern<EProvideKey>(new Implementation<EProvideKey>(e, id, v, r, h, t))
+ PrivateImplementationPattern<EProvideKey>(e, id, v, r, h, t)
{
}
@@ -793,7 +793,7 @@ namespace paludis
EKeywordsKey::EKeywordsKey(const Environment * const e, const std::shared_ptr<const ERepositoryID> & id,
const std::string & r, const std::string & h, const std::string & v, const MetadataKeyType t) :
- PrivateImplementationPattern<EKeywordsKey>(new Implementation<EKeywordsKey>(id, e, v, r, h, t))
+ PrivateImplementationPattern<EKeywordsKey>(id, e, v, r, h, t)
{
}
@@ -881,7 +881,7 @@ namespace paludis
EStringSetKey::EStringSetKey(const std::shared_ptr<const ERepositoryID> & id,
const std::string & r, const std::string & h, const std::string & v, const MetadataKeyType t) :
- PrivateImplementationPattern<EStringSetKey>(new Implementation<EStringSetKey>(id, v, r, h, t))
+ PrivateImplementationPattern<EStringSetKey>(id, v, r, h, t)
{
}
@@ -964,7 +964,7 @@ namespace paludis
EContentsKey::EContentsKey(const std::shared_ptr<const ERepositoryID> & id,
const std::string & r, const std::string & h, const FSEntry & v, const MetadataKeyType t) :
- PrivateImplementationPattern<EContentsKey>(new Implementation<EContentsKey>(id, v, r, h, t))
+ PrivateImplementationPattern<EContentsKey>(id, v, r, h, t)
{
}
@@ -1084,7 +1084,7 @@ namespace paludis
EMTimeKey::EMTimeKey(const std::shared_ptr<const ERepositoryID> & id,
const std::string & r, const std::string & h, const FSEntry & v, const MetadataKeyType t) :
- PrivateImplementationPattern<EMTimeKey>(new Implementation<EMTimeKey>(id, v, r, h, t))
+ PrivateImplementationPattern<EMTimeKey>(id, v, r, h, t)
{
}
@@ -1153,7 +1153,7 @@ namespace paludis
}
ESlotKey::ESlotKey(const std::shared_ptr<const EAPIMetadataVariable> & m, const std::string & v, const MetadataKeyType t) :
- PrivateImplementationPattern<ESlotKey>(new Implementation<ESlotKey>(SlotName(v), m, t))
+ PrivateImplementationPattern<ESlotKey>(SlotName(v), m, t)
{
}
diff --git a/paludis/repositories/e/e_mask.cc b/paludis/repositories/e/e_mask.cc
index c363017..71b6f46 100644
--- a/paludis/repositories/e/e_mask.cc
+++ b/paludis/repositories/e/e_mask.cc
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2007, 2008 Ciaran McCreesh
+ * Copyright (c) 2007, 2008, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -42,7 +42,7 @@ namespace paludis
}
EUnacceptedMask::EUnacceptedMask(const char k, const std::string & d, const std::shared_ptr<const MetadataKey> & u) :
- PrivateImplementationPattern<EUnacceptedMask>(new Implementation<EUnacceptedMask>(k, d, u))
+ PrivateImplementationPattern<EUnacceptedMask>(k, d, u)
{
}
@@ -87,7 +87,7 @@ namespace paludis
}
EUnsupportedMask::EUnsupportedMask(const char k, const std::string & d, const std::string & n) :
- PrivateImplementationPattern<EUnsupportedMask>(new Implementation<EUnsupportedMask>(k, d, n))
+ PrivateImplementationPattern<EUnsupportedMask>(k, d, n)
{
}
@@ -134,7 +134,7 @@ namespace paludis
}
ERepositoryMask::ERepositoryMask(const char k, const std::string & d, const std::shared_ptr<const MetadataKey> & m) :
- PrivateImplementationPattern<ERepositoryMask>(new Implementation<ERepositoryMask>(k, d, m))
+ PrivateImplementationPattern<ERepositoryMask>(k, d, m)
{
}
diff --git a/paludis/repositories/e/e_repository.cc b/paludis/repositories/e/e_repository.cc
index 64a7a08..698a8fd 100644
--- a/paludis/repositories/e/e_repository.cc
+++ b/paludis/repositories/e/e_repository.cc
@@ -505,7 +505,7 @@ ERepository::ERepository(const ERepositoryParams & p) :
n::provides_interface() = static_cast<RepositoryProvidesInterface *>(0),
n::virtuals_interface() = (*DistributionData::get_instance()->distribution_from_string(p.environment()->distribution())).support_old_style_virtuals() ? this : 0
)),
- PrivateImplementationPattern<ERepository>(new Implementation<ERepository>(this, p)),
+ PrivateImplementationPattern<ERepository>(this, p),
_imp(PrivateImplementationPattern<ERepository>::_imp)
{
_add_metadata_keys();
diff --git a/paludis/repositories/e/e_repository_mask_file.cc b/paludis/repositories/e/e_repository_mask_file.cc
index 59e2c3a..3af26c4 100644
--- a/paludis/repositories/e/e_repository_mask_file.cc
+++ b/paludis/repositories/e/e_repository_mask_file.cc
@@ -52,7 +52,7 @@ namespace paludis
}
MaskFile::MaskFile(const FSEntry & f, const LineConfigFileOptions & opts) :
- PrivateImplementationPattern<MaskFile>(new Implementation<MaskFile>)
+ PrivateImplementationPattern<MaskFile>()
{
LineConfigFileOptions myopts(opts);
myopts += lcfo_disallow_comments;
diff --git a/paludis/repositories/e/e_repository_news.cc b/paludis/repositories/e/e_repository_news.cc
index d3823e7..30f9a4e 100644
--- a/paludis/repositories/e/e_repository_news.cc
+++ b/paludis/repositories/e/e_repository_news.cc
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2006, 2007, 2008, 2009 Ciaran McCreesh
+ * Copyright (c) 2006, 2007, 2008, 2009, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -107,7 +107,7 @@ namespace paludis
ERepositoryNews::ERepositoryNews(const Environment * const e, const ERepository * const p,
const erepository::ERepositoryParams & k) :
- PrivateImplementationPattern<ERepositoryNews>(new Implementation<ERepositoryNews>(e, p, k))
+ PrivateImplementationPattern<ERepositoryNews>(e, p, k)
{
}
@@ -267,7 +267,7 @@ namespace paludis
}
NewsFile::NewsFile(const FSEntry & our_filename) :
- PrivateImplementationPattern<NewsFile>(new Implementation<NewsFile>)
+ PrivateImplementationPattern<NewsFile>()
{
Context context("When parsing GLEP 42 news file '" + stringify(our_filename) + "':");
diff --git a/paludis/repositories/e/e_repository_sets.cc b/paludis/repositories/e/e_repository_sets.cc
index bc281c1..c551fef 100644
--- a/paludis/repositories/e/e_repository_sets.cc
+++ b/paludis/repositories/e/e_repository_sets.cc
@@ -89,7 +89,7 @@ namespace paludis
ERepositorySets::ERepositorySets(const Environment * const e, const ERepository * const p,
const erepository::ERepositoryParams & k) :
- PrivateImplementationPattern<ERepositorySets>(new Implementation<ERepositorySets>(e, p, k))
+ PrivateImplementationPattern<ERepositorySets>(e, p, k)
{
}
diff --git a/paludis/repositories/e/e_stripper.cc b/paludis/repositories/e/e_stripper.cc
index dcc65c9..7ead11d 100644
--- a/paludis/repositories/e/e_stripper.cc
+++ b/paludis/repositories/e/e_stripper.cc
@@ -48,7 +48,7 @@ EStripper::EStripper(const EStripperOptions & options) :
n::split() = options.split(),
n::strip() = options.strip()
)),
- PrivateImplementationPattern<EStripper>(new Implementation<EStripper>(options)),
+ PrivateImplementationPattern<EStripper>(options),
_imp(PrivateImplementationPattern<EStripper>::_imp)
{
}
diff --git a/paludis/repositories/e/eapi.cc b/paludis/repositories/e/eapi.cc
index 6533b98..2073956 100644
--- a/paludis/repositories/e/eapi.cc
+++ b/paludis/repositories/e/eapi.cc
@@ -381,7 +381,7 @@ EAPIConfigurationError::EAPIConfigurationError(const std::string & s) throw () :
}
EAPIData::EAPIData() :
- PrivateImplementationPattern<EAPIData>(new Implementation<EAPIData>)
+ PrivateImplementationPattern<EAPIData>()
{
}
@@ -423,7 +423,7 @@ namespace paludis
}
EAPILabels::EAPILabels(const std::string & s) :
- PrivateImplementationPattern<EAPILabels>(new Implementation<EAPILabels>)
+ PrivateImplementationPattern<EAPILabels>()
{
std::vector<std::string> tokens;
@@ -444,7 +444,7 @@ EAPILabels::EAPILabels(const std::string & s) :
}
EAPILabels::EAPILabels(const EAPILabels & other) :
- PrivateImplementationPattern<EAPILabels>(new Implementation<EAPILabels>(*other._imp.operator-> ()))
+ PrivateImplementationPattern<EAPILabels>(*other._imp.operator-> ())
{
}
diff --git a/paludis/repositories/e/eapi_phase.cc b/paludis/repositories/e/eapi_phase.cc
index ffab13b..4315516 100644
--- a/paludis/repositories/e/eapi_phase.cc
+++ b/paludis/repositories/e/eapi_phase.cc
@@ -62,7 +62,7 @@ namespace paludis
}
EAPIPhase::EAPIPhase(const std::string & s) :
- PrivateImplementationPattern<EAPIPhase>(new Implementation<EAPIPhase>)
+ PrivateImplementationPattern<EAPIPhase>()
{
Context c("When parsing EAPI phase '" + s + "'");
@@ -111,7 +111,7 @@ EAPIPhase::end_commands() const
}
EAPIPhases::EAPIPhases(const std::string & s) :
- PrivateImplementationPattern<EAPIPhases>(new Implementation<EAPIPhases>)
+ PrivateImplementationPattern<EAPIPhases>()
{
Context c("When parsing EAPI phases '" + s + "'");
diff --git a/paludis/repositories/e/ebuild_flat_metadata_cache.cc b/paludis/repositories/e/ebuild_flat_metadata_cache.cc
index 9c61edc..a497b72 100644
--- a/paludis/repositories/e/ebuild_flat_metadata_cache.cc
+++ b/paludis/repositories/e/ebuild_flat_metadata_cache.cc
@@ -288,7 +288,7 @@ namespace
EbuildFlatMetadataCache::EbuildFlatMetadataCache(const Environment * const v, FSEntry & f,
const FSEntry & e, std::time_t t, const std::shared_ptr<const EclassMtimes> & m, bool s) :
- PrivateImplementationPattern<EbuildFlatMetadataCache>(new Implementation<EbuildFlatMetadataCache>(v, f, e, t, m, s))
+ PrivateImplementationPattern<EbuildFlatMetadataCache>(v, f, e, t, m, s)
{
}
diff --git a/paludis/repositories/e/ebuild_id.cc b/paludis/repositories/e/ebuild_id.cc
index 9ac2b12..611e955 100644
--- a/paludis/repositories/e/ebuild_id.cc
+++ b/paludis/repositories/e/ebuild_id.cc
@@ -160,7 +160,7 @@ EbuildID::EbuildID(const QualifiedPackageName & q, const VersionSpec & v,
const std::string & g,
const time_t t,
const std::shared_ptr<const EclassMtimes> & m) :
- PrivateImplementationPattern<EbuildID>(new Implementation<EbuildID>(q, v, e, r, f, g.empty() ? r->params().eapi_when_unknown() : g, t, m)),
+ PrivateImplementationPattern<EbuildID>(q, v, e, r, f, g.empty() ? r->params().eapi_when_unknown() : g, t, m),
_imp(PrivateImplementationPattern<EbuildID>::_imp)
{
}
diff --git a/paludis/repositories/e/eclass_mtimes.cc b/paludis/repositories/e/eclass_mtimes.cc
index a058cec..4910ad5 100644
--- a/paludis/repositories/e/eclass_mtimes.cc
+++ b/paludis/repositories/e/eclass_mtimes.cc
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2006, 2007, 2008 Ciaran McCreesh
+ * Copyright (c) 2006, 2007, 2008, 2010 Ciaran McCreesh
* Copyright (c) 2008 David Leverton
*
* This file is part of the Paludis package manager. Paludis is free software;
@@ -83,7 +83,7 @@ namespace paludis
}
EclassMtimes::EclassMtimes(const ERepository * r, const std::shared_ptr<const FSEntrySequence> & d) :
- PrivateImplementationPattern<EclassMtimes>(new Implementation<EclassMtimes>(r, d))
+ PrivateImplementationPattern<EclassMtimes>(r, d)
{
}
diff --git a/paludis/repositories/e/exheres_layout.cc b/paludis/repositories/e/exheres_layout.cc
index d78a311..15cb88b 100644
--- a/paludis/repositories/e/exheres_layout.cc
+++ b/paludis/repositories/e/exheres_layout.cc
@@ -97,7 +97,7 @@ namespace paludis
ExheresLayout::ExheresLayout(const ERepository * const r, const FSEntry & tree_root,
const std::shared_ptr<const FSEntrySequence> & f) :
Layout(f),
- PrivateImplementationPattern<ExheresLayout>(new Implementation<ExheresLayout>(r, tree_root))
+ PrivateImplementationPattern<ExheresLayout>(r, tree_root)
{
if (master_repositories_locations())
{
diff --git a/paludis/repositories/e/exheres_profile.cc b/paludis/repositories/e/exheres_profile.cc
index 51234ce..abedc19 100644
--- a/paludis/repositories/e/exheres_profile.cc
+++ b/paludis/repositories/e/exheres_profile.cc
@@ -125,8 +125,7 @@ ExheresProfile::ExheresProfile(
const Environment * const env, const ERepository * const p, const RepositoryName & name,
const FSEntrySequence & location,
const std::string & arch_var_if_special, const bool x) :
- PrivateImplementationPattern<ExheresProfile>(
- new Implementation<ExheresProfile>(env, p, name, location, arch_var_if_special, x))
+ PrivateImplementationPattern<ExheresProfile>(env, p, name, location, arch_var_if_special, x)
{
for (FSEntrySequence::ConstIterator l(location.begin()), l_end(location.end()) ;
l != l_end ; ++l)
diff --git a/paludis/repositories/e/exndbam_repository.cc b/paludis/repositories/e/exndbam_repository.cc
index 2d82906..b1daffe 100644
--- a/paludis/repositories/e/exndbam_repository.cc
+++ b/paludis/repositories/e/exndbam_repository.cc
@@ -109,7 +109,7 @@ ExndbamRepository::ExndbamRepository(const RepositoryName & n, const ExndbamRepo
n::provides_interface() = static_cast<RepositoryProvidesInterface *>(0),
n::virtuals_interface() = static_cast<RepositoryVirtualsInterface *>(0)
)),
- PrivateImplementationPattern<ExndbamRepository>(new Implementation<ExndbamRepository>(p)),
+ PrivateImplementationPattern<ExndbamRepository>(p),
_imp(PrivateImplementationPattern<ExndbamRepository>::_imp)
{
_add_metadata_keys();
diff --git a/paludis/repositories/e/fetch_visitor.cc b/paludis/repositories/e/fetch_visitor.cc
index 91b3243..4c4346a 100644
--- a/paludis/repositories/e/fetch_visitor.cc
+++ b/paludis/repositories/e/fetch_visitor.cc
@@ -101,7 +101,7 @@ FetchVisitor::FetchVisitor(
const bool sr,
const std::shared_ptr<OutputManager> & md,
const GetMirrorsFunction & g) :
- PrivateImplementationPattern<FetchVisitor>(new Implementation<FetchVisitor>(e, i, p, d, f, u, m, n, sr, md, g))
+ PrivateImplementationPattern<FetchVisitor>(e, i, p, d, f, u, m, n, sr, md, g)
{
}
diff --git a/paludis/repositories/e/glsa.cc b/paludis/repositories/e/glsa.cc
index d0cf4c1..ebaacba 100644
--- a/paludis/repositories/e/glsa.cc
+++ b/paludis/repositories/e/glsa.cc
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2006, 2007, 2008, 2009 Ciaran McCreesh
+ * Copyright (c) 2006, 2007, 2008, 2009, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -80,7 +80,7 @@ namespace paludis
}
GLSAPackage::GLSAPackage(const QualifiedPackageName & n) :
- PrivateImplementationPattern<GLSAPackage>(new Implementation<GLSAPackage>(n))
+ PrivateImplementationPattern<GLSAPackage>(n)
{
}
@@ -149,7 +149,7 @@ GLSAPackage::name() const
}
GLSA::GLSA() :
- PrivateImplementationPattern<GLSA>(new Implementation<GLSA>)
+ PrivateImplementationPattern<GLSA>()
{
}
diff --git a/paludis/repositories/e/info_metadata_key.cc b/paludis/repositories/e/info_metadata_key.cc
index 52ea862..599f6e6 100644
--- a/paludis/repositories/e/info_metadata_key.cc
+++ b/paludis/repositories/e/info_metadata_key.cc
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2008, 2009 Ciaran McCreesh
+ * Copyright (c) 2008, 2009, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -85,7 +85,7 @@ namespace paludis
}
InfoVarsMetadataKey::InfoVarsMetadataKey(const std::shared_ptr<const FSEntrySequence> & f) :
- PrivateImplementationPattern<InfoVarsMetadataKey>(new Implementation<InfoVarsMetadataKey>(f))
+ PrivateImplementationPattern<InfoVarsMetadataKey>(f)
{
}
@@ -140,7 +140,7 @@ InfoVarsMetadataKey::type() const
InfoPkgsMetadataKey::InfoPkgsMetadataKey(const Environment * const e,
const std::shared_ptr<const FSEntrySequence> & f,
const ERepository * const r) :
- PrivateImplementationPattern<InfoPkgsMetadataKey>(new Implementation<InfoPkgsMetadataKey>(e, f, r)),
+ PrivateImplementationPattern<InfoPkgsMetadataKey>(e, f, r),
_imp(PrivateImplementationPattern<InfoPkgsMetadataKey>::_imp)
{
}
diff --git a/paludis/repositories/e/manifest2_reader.cc b/paludis/repositories/e/manifest2_reader.cc
index 3195de5..1e88c03 100644
--- a/paludis/repositories/e/manifest2_reader.cc
+++ b/paludis/repositories/e/manifest2_reader.cc
@@ -65,7 +65,7 @@ Manifest2Error::Manifest2Error(const std::string & msg) throw () :
}
Manifest2Reader::Manifest2Reader(const FSEntry & f) :
- PrivateImplementationPattern<Manifest2Reader>(new Implementation<Manifest2Reader>(f))
+ PrivateImplementationPattern<Manifest2Reader>(f)
{
if (! f.exists())
return;
diff --git a/paludis/repositories/e/memoised_hashes.cc b/paludis/repositories/e/memoised_hashes.cc
index 640fe56..4f0abf3 100644
--- a/paludis/repositories/e/memoised_hashes.cc
+++ b/paludis/repositories/e/memoised_hashes.cc
@@ -52,7 +52,7 @@ namespace paludis
}
MemoisedHashes::MemoisedHashes() :
- PrivateImplementationPattern<MemoisedHashes>(new Implementation<MemoisedHashes>)
+ PrivateImplementationPattern<MemoisedHashes>()
{
}
diff --git a/paludis/repositories/e/metadata_xml.cc b/paludis/repositories/e/metadata_xml.cc
index d987999..8b0c022 100644
--- a/paludis/repositories/e/metadata_xml.cc
+++ b/paludis/repositories/e/metadata_xml.cc
@@ -46,7 +46,7 @@ namespace paludis
}
MetadataXMLPool::MetadataXMLPool() :
- PrivateImplementationPattern<MetadataXMLPool>(new Implementation<MetadataXMLPool>)
+ PrivateImplementationPattern<MetadataXMLPool>()
{
}
diff --git a/paludis/repositories/e/myoptions_requirements_verifier.cc b/paludis/repositories/e/myoptions_requirements_verifier.cc
index 2ddfa4c..ad33dfa 100644
--- a/paludis/repositories/e/myoptions_requirements_verifier.cc
+++ b/paludis/repositories/e/myoptions_requirements_verifier.cc
@@ -63,7 +63,7 @@ namespace paludis
}
MyOptionsRequirementsVerifier::MyOptionsRequirementsVerifier(const std::shared_ptr<const ERepositoryID> & id) :
- PrivateImplementationPattern<MyOptionsRequirementsVerifier>(new Implementation<MyOptionsRequirementsVerifier>(id))
+ PrivateImplementationPattern<MyOptionsRequirementsVerifier>(id)
{
}
diff --git a/paludis/repositories/e/pretend_fetch_visitor.cc b/paludis/repositories/e/pretend_fetch_visitor.cc
index 4b06ab0..86db379 100644
--- a/paludis/repositories/e/pretend_fetch_visitor.cc
+++ b/paludis/repositories/e/pretend_fetch_visitor.cc
@@ -83,7 +83,7 @@ PretendFetchVisitor::PretendFetchVisitor(
const bool f,
const std::shared_ptr<const URILabel> & n,
PretendFetchAction & a) :
- PrivateImplementationPattern<PretendFetchVisitor>(new Implementation<PretendFetchVisitor>(e, i, p, d, f, n, a))
+ PrivateImplementationPattern<PretendFetchVisitor>(e, i, p, d, f, n, a)
{
}
diff --git a/paludis/repositories/e/profile_file.cc b/paludis/repositories/e/profile_file.cc
index 7eaad3b..5f70c6f 100644
--- a/paludis/repositories/e/profile_file.cc
+++ b/paludis/repositories/e/profile_file.cc
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2006, 2007, 2008, 2009 Ciaran McCreesh
+ * Copyright (c) 2006, 2007, 2008, 2009, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -164,7 +164,7 @@ ProfileFile<F_>::add_file(const FSEntry & f)
template <typename F_>
ProfileFile<F_>::ProfileFile(const ERepository * const r) :
- PrivateImplementationPattern<ProfileFile>(new Implementation<ProfileFile<F_> >(r))
+ PrivateImplementationPattern<ProfileFile>(r)
{
}
diff --git a/paludis/repositories/e/source_uri_finder.cc b/paludis/repositories/e/source_uri_finder.cc
index 6116dd8..b10b94b 100644
--- a/paludis/repositories/e/source_uri_finder.cc
+++ b/paludis/repositories/e/source_uri_finder.cc
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2007, 2008, 2009 Ciaran McCreesh
+ * Copyright (c) 2007, 2008, 2009, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -71,7 +71,7 @@ namespace paludis
SourceURIFinder::SourceURIFinder(const Environment * const e, const Repository * const repo,
const std::string & u, const std::string & f, const std::string & m, const GetMirrorsFunction & g) :
- PrivateImplementationPattern<SourceURIFinder>(new Implementation<SourceURIFinder>(e, repo, u, f, m, g))
+ PrivateImplementationPattern<SourceURIFinder>(e, repo, u, f, m, g)
{
}
diff --git a/paludis/repositories/e/traditional_layout.cc b/paludis/repositories/e/traditional_layout.cc
index 19771d2..dcc1fea 100644
--- a/paludis/repositories/e/traditional_layout.cc
+++ b/paludis/repositories/e/traditional_layout.cc
@@ -97,7 +97,7 @@ namespace paludis
TraditionalLayout::TraditionalLayout(const ERepository * const repo, const FSEntry & tree_root,
const std::shared_ptr<const FSEntrySequence> & f) :
Layout(f),
- PrivateImplementationPattern<TraditionalLayout>(new Implementation<TraditionalLayout>(repo, tree_root))
+ PrivateImplementationPattern<TraditionalLayout>(repo, tree_root)
{
if (master_repositories_locations())
{
diff --git a/paludis/repositories/e/traditional_profile.cc b/paludis/repositories/e/traditional_profile.cc
index 33ebbe9..fcdf0f6 100644
--- a/paludis/repositories/e/traditional_profile.cc
+++ b/paludis/repositories/e/traditional_profile.cc
@@ -833,8 +833,7 @@ TraditionalProfile::TraditionalProfile(
const Environment * const env, const ERepository * const p, const RepositoryName & name,
const FSEntrySequence & location,
const std::string & arch_var_if_special, const bool x) :
- PrivateImplementationPattern<TraditionalProfile>(
- new Implementation<TraditionalProfile>(env, p, name, location, arch_var_if_special, x))
+ PrivateImplementationPattern<TraditionalProfile>(env, p, name, location, arch_var_if_special, x)
{
}
diff --git a/paludis/repositories/e/use_desc.cc b/paludis/repositories/e/use_desc.cc
index d89b826..8982419 100644
--- a/paludis/repositories/e/use_desc.cc
+++ b/paludis/repositories/e/use_desc.cc
@@ -79,7 +79,7 @@ namespace paludis
}
UseDesc::UseDesc(const std::shared_ptr<const UseDescFileInfoSequence> & f) :
- PrivateImplementationPattern<UseDesc>(new Implementation<UseDesc>(f))
+ PrivateImplementationPattern<UseDesc>(f)
{
}
diff --git a/paludis/repositories/e/vdb_merger.cc b/paludis/repositories/e/vdb_merger.cc
index 266583e..364b68f 100644
--- a/paludis/repositories/e/vdb_merger.cc
+++ b/paludis/repositories/e/vdb_merger.cc
@@ -91,7 +91,7 @@ VDBMerger::VDBMerger(const VDBMergerParams & p) :
n::options() = p.options(),
n::root() = p.root()
)),
- PrivateImplementationPattern<VDBMerger>(new Implementation<VDBMerger>(p)),
+ PrivateImplementationPattern<VDBMerger>(p),
_imp(PrivateImplementationPattern<VDBMerger>::_imp)
{
}
diff --git a/paludis/repositories/e/vdb_repository.cc b/paludis/repositories/e/vdb_repository.cc
index c5fb325..83ee884 100644
--- a/paludis/repositories/e/vdb_repository.cc
+++ b/paludis/repositories/e/vdb_repository.cc
@@ -176,7 +176,7 @@ VDBRepository::VDBRepository(const VDBRepositoryParams & p) :
n::provides_interface() = this,
n::virtuals_interface() = static_cast<RepositoryVirtualsInterface *>(0)
)),
- PrivateImplementationPattern<VDBRepository>(new Implementation<VDBRepository>(this, p)),
+ PrivateImplementationPattern<VDBRepository>(this, p),
_imp(PrivateImplementationPattern<VDBRepository>::_imp)
{
_add_metadata_keys();
diff --git a/paludis/repositories/e/vdb_unmerger.cc b/paludis/repositories/e/vdb_unmerger.cc
index fa0f0aa..12b11db 100644
--- a/paludis/repositories/e/vdb_unmerger.cc
+++ b/paludis/repositories/e/vdb_unmerger.cc
@@ -74,7 +74,7 @@ VDBUnmerger::VDBUnmerger(const VDBUnmergerOptions & o) :
n::ignore() = o.ignore(),
n::root() = o.root()
)),
- PrivateImplementationPattern<VDBUnmerger>(new Implementation<VDBUnmerger>(o)),
+ PrivateImplementationPattern<VDBUnmerger>(o),
_imp(PrivateImplementationPattern<VDBUnmerger>::_imp.get())
{
}
diff --git a/paludis/repositories/e/xml_things_handle.cc b/paludis/repositories/e/xml_things_handle.cc
index c90625e..81d16dc 100644
--- a/paludis/repositories/e/xml_things_handle.cc
+++ b/paludis/repositories/e/xml_things_handle.cc
@@ -123,7 +123,7 @@ namespace paludis
}
XMLThingsHandle::XMLThingsHandle() :
- PrivateImplementationPattern<XMLThingsHandle>(new Implementation<XMLThingsHandle>)
+ PrivateImplementationPattern<XMLThingsHandle>()
{
}
diff --git a/paludis/repositories/fake/fake_installed_repository.cc b/paludis/repositories/fake/fake_installed_repository.cc
index a13d7bc..bb0f111 100644
--- a/paludis/repositories/fake/fake_installed_repository.cc
+++ b/paludis/repositories/fake/fake_installed_repository.cc
@@ -67,8 +67,7 @@ FakeInstalledRepository::FakeInstalledRepository(const FakeInstalledRepositoryPa
n::provides_interface() = this,
n::virtuals_interface() = static_cast<RepositoryVirtualsInterface *>(0)
)),
- PrivateImplementationPattern<FakeInstalledRepository>(new Implementation<FakeInstalledRepository>(
- p.supports_uninstall(), p.suitable_destination())),
+ PrivateImplementationPattern<FakeInstalledRepository>(p.supports_uninstall(), p.suitable_destination()),
_imp(PrivateImplementationPattern<FakeInstalledRepository>::_imp)
{
add_metadata_key(_imp->format_key);
diff --git a/paludis/repositories/fake/fake_package_id.cc b/paludis/repositories/fake/fake_package_id.cc
index db1ac5a..2449828 100644
--- a/paludis/repositories/fake/fake_package_id.cc
+++ b/paludis/repositories/fake/fake_package_id.cc
@@ -73,7 +73,7 @@ namespace paludis
template <typename C_>
FakeMetadataValueKey<C_>::FakeMetadataValueKey(
const std::string & r, const std::string & h, const MetadataKeyType t, const C_ & c) :
- PrivateImplementationPattern<FakeMetadataValueKey<C_> >(new Implementation<FakeMetadataValueKey<C_> >(r, h, t, c)),
+ PrivateImplementationPattern<FakeMetadataValueKey<C_> >(r, h, t, c),
_imp(PrivateImplementationPattern<FakeMetadataValueKey<C_> >::_imp)
{
}
@@ -154,7 +154,7 @@ template <typename C_>
FakeMetadataCollectionKey<C_>::FakeMetadataCollectionKey(
const std::string & r, const std::string & h, const MetadataKeyType t, const PackageID * const i,
const Environment * const e) :
- PrivateImplementationPattern<FakeMetadataCollectionKey<C_> >(new Implementation<FakeMetadataCollectionKey<C_> >(i, e, r, h, t)),
+ PrivateImplementationPattern<FakeMetadataCollectionKey<C_> >(i, e, r, h, t),
_imp(PrivateImplementationPattern<FakeMetadataCollectionKey<C_> >::_imp)
{
}
@@ -281,7 +281,7 @@ namespace paludis
template <typename C_>
FakeMetadataSpecTreeKey<C_>::FakeMetadataSpecTreeKey(const std::string & r, const std::string & h, const std::string & v,
const std::function<const std::shared_ptr<const C_> (const std::string &)> & f, const MetadataKeyType t) :
- PrivateImplementationPattern<FakeMetadataSpecTreeKey<C_> >(new Implementation<FakeMetadataSpecTreeKey<C_> >(f, r, h, t)),
+ PrivateImplementationPattern<FakeMetadataSpecTreeKey<C_> >(f, r, h, t),
_imp(PrivateImplementationPattern<FakeMetadataSpecTreeKey<C_> >::_imp)
{
set_from_string(v);
@@ -344,8 +344,7 @@ FakeMetadataSpecTreeKey<C_>::pretty_print_flat(const typename C_::ItemFormatter
FakeMetadataSpecTreeKey<FetchableURISpecTree>::FakeMetadataSpecTreeKey(const std::string & r, const std::string & h, const std::string & v,
const std::function<const std::shared_ptr<const FetchableURISpecTree> (const std::string &)> & f, const MetadataKeyType t) :
- PrivateImplementationPattern<FakeMetadataSpecTreeKey<FetchableURISpecTree> >(
- new Implementation<FakeMetadataSpecTreeKey<FetchableURISpecTree> >(f, r, h, t)),
+ PrivateImplementationPattern<FakeMetadataSpecTreeKey<FetchableURISpecTree> >(f, r, h, t),
_imp(PrivateImplementationPattern<FakeMetadataSpecTreeKey<FetchableURISpecTree> >::_imp)
{
set_from_string(v);
@@ -407,8 +406,7 @@ FakeMetadataSpecTreeKey<FetchableURISpecTree>::initial_label() const
FakeMetadataSpecTreeKey<DependencySpecTree>::FakeMetadataSpecTreeKey(const std::string & r, const std::string & h, const std::string & v,
const std::function<const std::shared_ptr<const DependencySpecTree> (const std::string &)> & f,
const std::shared_ptr<const DependenciesLabelSequence> & s, const MetadataKeyType t) :
- PrivateImplementationPattern<FakeMetadataSpecTreeKey<DependencySpecTree> >(
- new Implementation<FakeMetadataSpecTreeKey<DependencySpecTree> >(f, s, r, h, t)),
+ PrivateImplementationPattern<FakeMetadataSpecTreeKey<DependencySpecTree> >(f, s, r, h, t),
_imp(PrivateImplementationPattern<FakeMetadataSpecTreeKey<DependencySpecTree> >::_imp)
{
set_from_string(v);
@@ -552,7 +550,7 @@ namespace
FakeMetadataChoicesKey::FakeMetadataChoicesKey(const Environment * const e,
const std::shared_ptr<const PackageID> & i) :
- PrivateImplementationPattern<FakeMetadataChoicesKey>(new Implementation<FakeMetadataChoicesKey>(e, i)),
+ PrivateImplementationPattern<FakeMetadataChoicesKey>(e, i),
_imp(PrivateImplementationPattern<FakeMetadataChoicesKey>::_imp)
{
}
@@ -626,7 +624,7 @@ namespace paludis
}
FakeUnacceptedMask::FakeUnacceptedMask(const char c, const std::string & s, const std::shared_ptr<const MetadataKey> & k) :
- PrivateImplementationPattern<FakeUnacceptedMask>(new Implementation<FakeUnacceptedMask>(c, s, k))
+ PrivateImplementationPattern<FakeUnacceptedMask>(c, s, k)
{
}
@@ -748,7 +746,7 @@ namespace paludis
FakePackageID::FakePackageID(const Environment * const e, const std::shared_ptr<const FakeRepositoryBase> & r,
const QualifiedPackageName & q, const VersionSpec & v) :
- PrivateImplementationPattern<FakePackageID>(new Implementation<FakePackageID>(e, r, q, v, this)),
+ PrivateImplementationPattern<FakePackageID>(e, r, q, v, this),
_imp(PrivateImplementationPattern<FakePackageID>::_imp)
{
add_metadata_key(_imp->keywords);
diff --git a/paludis/repositories/fake/fake_repository.cc b/paludis/repositories/fake/fake_repository.cc
index d8e2d48..83bb447 100644
--- a/paludis/repositories/fake/fake_repository.cc
+++ b/paludis/repositories/fake/fake_repository.cc
@@ -53,7 +53,7 @@ namespace paludis
}
FakeRepository::FakeRepository(const FakeRepositoryParams & params) :
- PrivateImplementationPattern<FakeRepository>(new Implementation<FakeRepository>),
+ PrivateImplementationPattern<FakeRepository>(),
FakeRepositoryBase(params.environment(), params.name(), make_named_values<RepositoryCapabilities>(
n::destination_interface() = static_cast<RepositoryDestinationInterface *>(0),
n::environment_variable_interface() = static_cast<RepositoryEnvironmentVariableInterface *>(0),
diff --git a/paludis/repositories/fake/fake_repository_base.cc b/paludis/repositories/fake/fake_repository_base.cc
index 7ef36f1..2b28bdf 100644
--- a/paludis/repositories/fake/fake_repository_base.cc
+++ b/paludis/repositories/fake/fake_repository_base.cc
@@ -64,7 +64,7 @@ namespace paludis
FakeRepositoryBase::FakeRepositoryBase(const Environment * const e,
const RepositoryName & our_name, const RepositoryCapabilities & caps) :
Repository(e, our_name, caps),
- PrivateImplementationPattern<FakeRepositoryBase>(new Implementation<FakeRepositoryBase>(e)),
+ PrivateImplementationPattern<FakeRepositoryBase>(e),
_imp(PrivateImplementationPattern<FakeRepositoryBase>::_imp)
{
}
diff --git a/paludis/repositories/gems/gem_specification.cc b/paludis/repositories/gems/gem_specification.cc
index 3f6fe70..a223bd6 100644
--- a/paludis/repositories/gems/gem_specification.cc
+++ b/paludis/repositories/gems/gem_specification.cc
@@ -245,7 +245,7 @@ namespace
GemSpecification::GemSpecification(const Environment * const e,
const std::shared_ptr<const Repository> & r, const yaml::Node & node) :
- PrivateImplementationPattern<GemSpecification>(new Implementation<GemSpecification>(e, r)),
+ PrivateImplementationPattern<GemSpecification>(e, r),
_imp(PrivateImplementationPattern<GemSpecification>::_imp)
{
TopVisitor v(_imp.get());
@@ -267,7 +267,7 @@ GemSpecification::GemSpecification(const Environment * const e,
GemSpecification::GemSpecification(const Environment * const e, const std::shared_ptr<const Repository> & r,
const PackageNamePart & q, const VersionSpec & v, const FSEntry & f) :
- PrivateImplementationPattern<GemSpecification>(new Implementation<GemSpecification>(e, r)),
+ PrivateImplementationPattern<GemSpecification>(e, r),
_imp(PrivateImplementationPattern<GemSpecification>::_imp)
{
_imp->name_part = stringify(q);
diff --git a/paludis/repositories/gems/gem_specifications.cc b/paludis/repositories/gems/gem_specifications.cc
index 0df3021..4ed7848 100644
--- a/paludis/repositories/gems/gem_specifications.cc
+++ b/paludis/repositories/gems/gem_specifications.cc
@@ -196,7 +196,7 @@ namespace
GemSpecifications::GemSpecifications(const Environment * const e,
const std::shared_ptr<const Repository> & r, const yaml::Node & n) :
- PrivateImplementationPattern<GemSpecifications>(new Implementation<GemSpecifications>)
+ PrivateImplementationPattern<GemSpecifications>()
{
TopVisitor v(e, r, _imp.get());
n.accept(v);
diff --git a/paludis/repositories/gems/gems_repository.cc b/paludis/repositories/gems/gems_repository.cc
index 848bd57..45c1fff 100644
--- a/paludis/repositories/gems/gems_repository.cc
+++ b/paludis/repositories/gems/gems_repository.cc
@@ -99,7 +99,7 @@ GemsRepository::GemsRepository(const gems::RepositoryParams & params) :
n::provides_interface() = static_cast<RepositoryProvidesInterface *>(0),
n::virtuals_interface() = static_cast<RepositoryVirtualsInterface *>(0)
)),
- PrivateImplementationPattern<GemsRepository>(new Implementation<GemsRepository>(params)),
+ PrivateImplementationPattern<GemsRepository>(params),
_imp(PrivateImplementationPattern<GemsRepository>::_imp)
{
_add_metadata_keys();
diff --git a/paludis/repositories/gems/installed_gems_repository.cc b/paludis/repositories/gems/installed_gems_repository.cc
index 1c71e3f..3fd9448 100644
--- a/paludis/repositories/gems/installed_gems_repository.cc
+++ b/paludis/repositories/gems/installed_gems_repository.cc
@@ -104,7 +104,7 @@ InstalledGemsRepository::InstalledGemsRepository(const gems::InstalledRepository
n::provides_interface() = static_cast<RepositoryProvidesInterface *>(0),
n::virtuals_interface() = static_cast<RepositoryVirtualsInterface *>(0)
)),
- PrivateImplementationPattern<InstalledGemsRepository>(new Implementation<InstalledGemsRepository>(params)),
+ PrivateImplementationPattern<InstalledGemsRepository>(params),
_imp(PrivateImplementationPattern<InstalledGemsRepository>::_imp)
{
_add_metadata_keys();
diff --git a/paludis/repositories/gems/yaml.cc b/paludis/repositories/gems/yaml.cc
index 824d38c..23eecdc 100644
--- a/paludis/repositories/gems/yaml.cc
+++ b/paludis/repositories/gems/yaml.cc
@@ -62,7 +62,7 @@ namespace paludis
}
StringNode::StringNode(const std::string & t) :
- PrivateImplementationPattern<StringNode>(new Implementation<StringNode>(t))
+ PrivateImplementationPattern<StringNode>(t)
{
}
@@ -86,7 +86,7 @@ namespace paludis
}
SequenceNode::SequenceNode() :
- PrivateImplementationPattern<SequenceNode>(new Implementation<SequenceNode>)
+ PrivateImplementationPattern<SequenceNode>()
{
}
@@ -122,7 +122,7 @@ namespace paludis
}
MapNode::MapNode() :
- PrivateImplementationPattern<MapNode>(new Implementation<MapNode>)
+ PrivateImplementationPattern<MapNode>()
{
}
@@ -315,7 +315,7 @@ namespace paludis
}
Document::Document(const std::string & s) :
- PrivateImplementationPattern<Document>(new Implementation<Document>(s))
+ PrivateImplementationPattern<Document>(s)
{
Context c("When parsing yaml document:");
@@ -360,7 +360,7 @@ namespace paludis
}
NodeManager::NodeManager() :
- PrivateImplementationPattern<NodeManager>(new Implementation<NodeManager>)
+ PrivateImplementationPattern<NodeManager>()
{
}
diff --git a/paludis/repositories/repository/repository_id.cc b/paludis/repositories/repository/repository_id.cc
index edf29f6..c52077c 100644
--- a/paludis/repositories/repository/repository_id.cc
+++ b/paludis/repositories/repository/repository_id.cc
@@ -75,7 +75,7 @@ namespace
const std::shared_ptr<Set<std::string> > Implementation<RepositoryID>::behaviours_set = make_behaviours();
RepositoryID::RepositoryID(const RepositoryIDParams & entry) :
- PrivateImplementationPattern<RepositoryID>(new Implementation<RepositoryID>(entry)),
+ PrivateImplementationPattern<RepositoryID>(entry),
_imp(PrivateImplementationPattern<RepositoryID>::_imp)
{
add_metadata_key(_imp->behaviours_key);
diff --git a/paludis/repositories/repository/repository_repository.cc b/paludis/repositories/repository/repository_repository.cc
index 0f153d4..2ae486a 100644
--- a/paludis/repositories/repository/repository_repository.cc
+++ b/paludis/repositories/repository/repository_repository.cc
@@ -88,7 +88,7 @@ RepositoryRepositoryConfigurationError::RepositoryRepositoryConfigurationError(c
}
RepositoryRepository::RepositoryRepository(const RepositoryRepositoryParams & p) :
- PrivateImplementationPattern<RepositoryRepository>(new Implementation<RepositoryRepository>(this, p)),
+ PrivateImplementationPattern<RepositoryRepository>(this, p),
Repository(
p.environment(),
p.name(),
diff --git a/paludis/repositories/repository/repository_repository_store.cc b/paludis/repositories/repository/repository_repository_store.cc
index 96ae617..0669af4 100644
--- a/paludis/repositories/repository/repository_repository_store.cc
+++ b/paludis/repositories/repository/repository_repository_store.cc
@@ -72,7 +72,7 @@ namespace paludis
RepositoryRepositoryStore::RepositoryRepositoryStore(
const Environment * const env,
const RepositoryRepository * const repo) :
- PrivateImplementationPattern<RepositoryRepositoryStore>(new Implementation<RepositoryRepositoryStore>(env, repo))
+ PrivateImplementationPattern<RepositoryRepositoryStore>(env, repo)
{
_populate();
}
diff --git a/paludis/repositories/unavailable/unavailable_package_id.cc b/paludis/repositories/unavailable/unavailable_package_id.cc
index 1791225..f620676 100644
--- a/paludis/repositories/unavailable/unavailable_package_id.cc
+++ b/paludis/repositories/unavailable/unavailable_package_id.cc
@@ -73,7 +73,7 @@ namespace paludis
}
UnavailablePackageID::UnavailablePackageID(const UnavailablePackageIDParams & entry) :
- PrivateImplementationPattern<UnavailablePackageID>(new Implementation<UnavailablePackageID>(entry)),
+ PrivateImplementationPattern<UnavailablePackageID>(entry),
_imp(PrivateImplementationPattern<UnavailablePackageID>::_imp)
{
add_metadata_key(_imp->slot_key);
diff --git a/paludis/repositories/unavailable/unavailable_repository.cc b/paludis/repositories/unavailable/unavailable_repository.cc
index d04a2ee..22b5235 100644
--- a/paludis/repositories/unavailable/unavailable_repository.cc
+++ b/paludis/repositories/unavailable/unavailable_repository.cc
@@ -85,7 +85,7 @@ UnavailableRepositoryConfigurationError::UnavailableRepositoryConfigurationError
}
UnavailableRepository::UnavailableRepository(const UnavailableRepositoryParams & p) :
- PrivateImplementationPattern<UnavailableRepository>(new Implementation<UnavailableRepository>(this, p)),
+ PrivateImplementationPattern<UnavailableRepository>(this, p),
Repository(
p.environment(),
p.name(),
diff --git a/paludis/repositories/unavailable/unavailable_repository_dependencies_key.cc b/paludis/repositories/unavailable/unavailable_repository_dependencies_key.cc
index d603bf8..381fbc4 100644
--- a/paludis/repositories/unavailable/unavailable_repository_dependencies_key.cc
+++ b/paludis/repositories/unavailable/unavailable_repository_dependencies_key.cc
@@ -62,8 +62,7 @@ namespace paludis
UnavailableRepositoryDependenciesKey::UnavailableRepositoryDependenciesKey(const Environment * const env,
const std::string & r, const std::string & h, const MetadataKeyType t,
const std::string & v) :
- PrivateImplementationPattern<UnavailableRepositoryDependenciesKey>(
- new Implementation<UnavailableRepositoryDependenciesKey>(env, r, h, t, v))
+ PrivateImplementationPattern<UnavailableRepositoryDependenciesKey>(env, r, h, t, v)
{
}
diff --git a/paludis/repositories/unavailable/unavailable_repository_file.cc b/paludis/repositories/unavailable/unavailable_repository_file.cc
index 8e4615b..00e5d78 100644
--- a/paludis/repositories/unavailable/unavailable_repository_file.cc
+++ b/paludis/repositories/unavailable/unavailable_repository_file.cc
@@ -60,7 +60,7 @@ namespace paludis
}
UnavailableRepositoryFile::UnavailableRepositoryFile(const FSEntry & f) :
- PrivateImplementationPattern<UnavailableRepositoryFile>(new Implementation<UnavailableRepositoryFile>)
+ PrivateImplementationPattern<UnavailableRepositoryFile>()
{
_load(f);
}
diff --git a/paludis/repositories/unavailable/unavailable_repository_id.cc b/paludis/repositories/unavailable/unavailable_repository_id.cc
index 882d65a..dd84204 100644
--- a/paludis/repositories/unavailable/unavailable_repository_id.cc
+++ b/paludis/repositories/unavailable/unavailable_repository_id.cc
@@ -74,7 +74,7 @@ namespace paludis
}
UnavailableRepositoryID::UnavailableRepositoryID(const UnavailableRepositoryIDParams & entry) :
- PrivateImplementationPattern<UnavailableRepositoryID>(new Implementation<UnavailableRepositoryID>(entry)),
+ PrivateImplementationPattern<UnavailableRepositoryID>(entry),
_imp(PrivateImplementationPattern<UnavailableRepositoryID>::_imp)
{
if (_imp->dependencies_key)
diff --git a/paludis/repositories/unavailable/unavailable_repository_store.cc b/paludis/repositories/unavailable/unavailable_repository_store.cc
index aa170b7..a4629ff 100644
--- a/paludis/repositories/unavailable/unavailable_repository_store.cc
+++ b/paludis/repositories/unavailable/unavailable_repository_store.cc
@@ -79,7 +79,7 @@ UnavailableRepositoryStore::UnavailableRepositoryStore(
const Environment * const env,
const UnavailableRepository * const repo,
const FSEntry & f) :
- PrivateImplementationPattern<UnavailableRepositoryStore>(new Implementation<UnavailableRepositoryStore>(repo))
+ PrivateImplementationPattern<UnavailableRepositoryStore>(repo)
{
_populate(env, f);
}
diff --git a/paludis/repositories/unpackaged/installed_id.cc b/paludis/repositories/unpackaged/installed_id.cc
index 20b1fd3..a4a2313 100644
--- a/paludis/repositories/unpackaged/installed_id.cc
+++ b/paludis/repositories/unpackaged/installed_id.cc
@@ -479,7 +479,7 @@ const std::shared_ptr<Set<std::string> > Implementation<InstalledUnpackagedID>::
InstalledUnpackagedID::InstalledUnpackagedID(const Environment * const e, const QualifiedPackageName & q,
const VersionSpec & v, const SlotName & s, const RepositoryName & n, const FSEntry & l,
const std::string &, const FSEntry & ro, const NDBAM * const d) :
- PrivateImplementationPattern<InstalledUnpackagedID>(new Implementation<InstalledUnpackagedID>(e, this, q, v, s, n, l, ro, d)),
+ PrivateImplementationPattern<InstalledUnpackagedID>(e, this, q, v, s, n, l, ro, d),
_imp(PrivateImplementationPattern<InstalledUnpackagedID>::_imp)
{
add_metadata_key(_imp->fs_location_key);
diff --git a/paludis/repositories/unpackaged/installed_repository.cc b/paludis/repositories/unpackaged/installed_repository.cc
index 29cd3d8..e37da76 100644
--- a/paludis/repositories/unpackaged/installed_repository.cc
+++ b/paludis/repositories/unpackaged/installed_repository.cc
@@ -90,7 +90,7 @@ namespace paludis
InstalledUnpackagedRepository::InstalledUnpackagedRepository(
const RepositoryName & n, const InstalledUnpackagedRepositoryParams & p) :
- PrivateImplementationPattern<InstalledUnpackagedRepository>(new Implementation<InstalledUnpackagedRepository>(p)),
+ PrivateImplementationPattern<InstalledUnpackagedRepository>(p),
Repository(p.environment(), n, make_named_values<RepositoryCapabilities>(
n::destination_interface() = this,
n::environment_variable_interface() = static_cast<RepositoryEnvironmentVariableInterface *>(0),
diff --git a/paludis/repositories/unpackaged/unpackaged_id.cc b/paludis/repositories/unpackaged/unpackaged_id.cc
index 70a8045..9bfc395 100644
--- a/paludis/repositories/unpackaged/unpackaged_id.cc
+++ b/paludis/repositories/unpackaged/unpackaged_id.cc
@@ -100,7 +100,7 @@ namespace paludis
UnpackagedID::UnpackagedID(const Environment * const e, const QualifiedPackageName & q,
const VersionSpec & v, const SlotName & s, const RepositoryName & n, const FSEntry & l,
const std::string & b, const std::string & r, const std::string & d) :
- PrivateImplementationPattern<UnpackagedID>(new Implementation<UnpackagedID>(e, q, v, s, n, l, b, r, d, this)),
+ PrivateImplementationPattern<UnpackagedID>(e, q, v, s, n, l, b, r, d, this),
_imp(PrivateImplementationPattern<UnpackagedID>::_imp)
{
add_metadata_key(_imp->slot_key);
diff --git a/paludis/repositories/unpackaged/unpackaged_key.cc b/paludis/repositories/unpackaged/unpackaged_key.cc
index 52551d5..d9069a5 100644
--- a/paludis/repositories/unpackaged/unpackaged_key.cc
+++ b/paludis/repositories/unpackaged/unpackaged_key.cc
@@ -64,7 +64,7 @@ UnpackagedDependencyKey::UnpackagedDependencyKey(const Environment * const env,
const std::string & r, const std::string & h, const MetadataKeyType t,
const std::shared_ptr<const DependenciesLabelSequence> & l,
const std::string & v) :
- PrivateImplementationPattern<UnpackagedDependencyKey>(new Implementation<UnpackagedDependencyKey>(env, v, l, r, h, t))
+ PrivateImplementationPattern<UnpackagedDependencyKey>(env, v, l, r, h, t)
{
}
@@ -147,7 +147,7 @@ namespace paludis
UnpackagedChoicesKey::UnpackagedChoicesKey(const Environment * const env, const std::string & r, const std::string & h,
const MetadataKeyType t, const UnpackagedID * const id) :
- PrivateImplementationPattern<UnpackagedChoicesKey>(new Implementation<UnpackagedChoicesKey>(env, id, r, h, t))
+ PrivateImplementationPattern<UnpackagedChoicesKey>(env, id, r, h, t)
{
}
diff --git a/paludis/repositories/unpackaged/unpackaged_repository.cc b/paludis/repositories/unpackaged/unpackaged_repository.cc
index b0a963e..c3f6d14 100644
--- a/paludis/repositories/unpackaged/unpackaged_repository.cc
+++ b/paludis/repositories/unpackaged/unpackaged_repository.cc
@@ -94,7 +94,7 @@ namespace paludis
UnpackagedRepository::UnpackagedRepository(const RepositoryName & n,
const UnpackagedRepositoryParams & params) :
- PrivateImplementationPattern<UnpackagedRepository>(new Implementation<UnpackagedRepository>(n, params)),
+ PrivateImplementationPattern<UnpackagedRepository>(n, params),
Repository(params.environment(), n, make_named_values<RepositoryCapabilities>(
n::destination_interface() = static_cast<RepositoryDestinationInterface *>(0),
n::environment_variable_interface() = static_cast<RepositoryEnvironmentVariableInterface *>(0),
diff --git a/paludis/repositories/unpackaged/unpackaged_stripper.cc b/paludis/repositories/unpackaged/unpackaged_stripper.cc
index ddd7386..0dd34bb 100644
--- a/paludis/repositories/unpackaged/unpackaged_stripper.cc
+++ b/paludis/repositories/unpackaged/unpackaged_stripper.cc
@@ -48,7 +48,7 @@ UnpackagedStripper::UnpackagedStripper(const UnpackagedStripperOptions & options
n::split() = options.split(),
n::strip() = options.strip()
)),
- PrivateImplementationPattern<UnpackagedStripper>(new Implementation<UnpackagedStripper>(options)),
+ PrivateImplementationPattern<UnpackagedStripper>(options),
_imp(PrivateImplementationPattern<UnpackagedStripper>::_imp)
{
}
diff --git a/paludis/repositories/unwritten/unwritten_id.cc b/paludis/repositories/unwritten/unwritten_id.cc
index 61270f3..596b50b 100644
--- a/paludis/repositories/unwritten/unwritten_id.cc
+++ b/paludis/repositories/unwritten/unwritten_id.cc
@@ -76,7 +76,7 @@ namespace paludis
}
UnwrittenID::UnwrittenID(const UnwrittenIDParams & entry) :
- PrivateImplementationPattern<UnwrittenID>(new Implementation<UnwrittenID>(entry)),
+ PrivateImplementationPattern<UnwrittenID>(entry),
_imp(PrivateImplementationPattern<UnwrittenID>::_imp)
{
if (_imp->slot_key)
diff --git a/paludis/repositories/unwritten/unwritten_repository.cc b/paludis/repositories/unwritten/unwritten_repository.cc
index 8e979b1..fcdfb4a 100644
--- a/paludis/repositories/unwritten/unwritten_repository.cc
+++ b/paludis/repositories/unwritten/unwritten_repository.cc
@@ -85,7 +85,7 @@ UnwrittenRepositoryConfigurationError::UnwrittenRepositoryConfigurationError(con
}
UnwrittenRepository::UnwrittenRepository(const UnwrittenRepositoryParams & p) :
- PrivateImplementationPattern<UnwrittenRepository>(new Implementation<UnwrittenRepository>(this, p)),
+ PrivateImplementationPattern<UnwrittenRepository>(this, p),
Repository(
p.environment(),
p.name(),
diff --git a/paludis/repositories/unwritten/unwritten_repository_file.cc b/paludis/repositories/unwritten/unwritten_repository_file.cc
index 28184c4..04dedd4 100644
--- a/paludis/repositories/unwritten/unwritten_repository_file.cc
+++ b/paludis/repositories/unwritten/unwritten_repository_file.cc
@@ -63,7 +63,7 @@ namespace paludis
}
UnwrittenRepositoryFile::UnwrittenRepositoryFile(const FSEntry & f) :
- PrivateImplementationPattern<UnwrittenRepositoryFile>(new Implementation<UnwrittenRepositoryFile>)
+ PrivateImplementationPattern<UnwrittenRepositoryFile>()
{
_load(f);
}
diff --git a/paludis/repositories/unwritten/unwritten_repository_store.cc b/paludis/repositories/unwritten/unwritten_repository_store.cc
index bbb5d4e..63164e5 100644
--- a/paludis/repositories/unwritten/unwritten_repository_store.cc
+++ b/paludis/repositories/unwritten/unwritten_repository_store.cc
@@ -74,7 +74,7 @@ UnwrittenRepositoryStore::UnwrittenRepositoryStore(
const Environment * const env,
const UnwrittenRepository * const repo,
const FSEntry & f) :
- PrivateImplementationPattern<UnwrittenRepositoryStore>(new Implementation<UnwrittenRepositoryStore>(repo))
+ PrivateImplementationPattern<UnwrittenRepositoryStore>(repo)
{
_populate(env, f);
}
diff --git a/paludis/repositories/virtuals/installed_virtuals_repository.cc b/paludis/repositories/virtuals/installed_virtuals_repository.cc
index 614114a..677c8c7 100644
--- a/paludis/repositories/virtuals/installed_virtuals_repository.cc
+++ b/paludis/repositories/virtuals/installed_virtuals_repository.cc
@@ -117,8 +117,7 @@ InstalledVirtualsRepository::InstalledVirtualsRepository(const Environment * con
n::provides_interface() = static_cast<RepositoryProvidesInterface *>(0),
n::virtuals_interface() = static_cast<RepositoryVirtualsInterface *>(0)
)),
- PrivateImplementationPattern<InstalledVirtualsRepository>(
- new Implementation<InstalledVirtualsRepository>(env, r)),
+ PrivateImplementationPattern<InstalledVirtualsRepository>(env, r),
_imp(PrivateImplementationPattern<InstalledVirtualsRepository>::_imp)
{
add_metadata_key(_imp->root_key);
diff --git a/paludis/repositories/virtuals/package_id.cc b/paludis/repositories/virtuals/package_id.cc
index de93cc4..19b679b 100644
--- a/paludis/repositories/virtuals/package_id.cc
+++ b/paludis/repositories/virtuals/package_id.cc
@@ -94,7 +94,7 @@ VirtualsDepKey::VirtualsDepKey(const Environment * const e, const std::string &
const std::shared_ptr<const PackageID> & v,
const std::shared_ptr<const DependenciesLabelSequence> & l,
const bool exact) :
- PrivateImplementationPattern<VirtualsDepKey>(new Implementation<VirtualsDepKey>(e, v, l, exact, r, h)),
+ PrivateImplementationPattern<VirtualsDepKey>(e, v, l, exact, r, h),
_imp(PrivateImplementationPattern<VirtualsDepKey>::_imp)
{
}
@@ -205,8 +205,7 @@ VirtualsPackageID::VirtualsPackageID(
const QualifiedPackageName & virtual_name,
const std::shared_ptr<const PackageID> & virtual_for,
const bool exact) :
- PrivateImplementationPattern<VirtualsPackageID>(
- new Implementation<VirtualsPackageID>(e, owner, virtual_name, virtual_for, exact)),
+ PrivateImplementationPattern<VirtualsPackageID>(e, owner, virtual_name, virtual_for, exact),
_imp(PrivateImplementationPattern<VirtualsPackageID>::_imp)
{
add_metadata_key(_imp->virtual_for);
diff --git a/paludis/repositories/virtuals/virtuals_repository.cc b/paludis/repositories/virtuals/virtuals_repository.cc
index 4b2d84b..ff1e6f0 100644
--- a/paludis/repositories/virtuals/virtuals_repository.cc
+++ b/paludis/repositories/virtuals/virtuals_repository.cc
@@ -129,8 +129,7 @@ VirtualsRepository::VirtualsRepository(const Environment * const env) :
n::provides_interface() = static_cast<RepositoryProvidesInterface *>(0),
n::virtuals_interface() = static_cast<RepositoryVirtualsInterface *>(0)
)),
- PrivateImplementationPattern<VirtualsRepository>(
- new Implementation<VirtualsRepository>(env)),
+ PrivateImplementationPattern<VirtualsRepository>(env),
_imp(PrivateImplementationPattern<VirtualsRepository>::_imp)
{
add_metadata_key(_imp->format_key);
diff --git a/paludis/repository.cc b/paludis/repository.cc
index 92f77c1..ded40e3 100644
--- a/paludis/repository.cc
+++ b/paludis/repository.cc
@@ -131,7 +131,7 @@ Repository::Repository(
const Environment * const env,
const RepositoryName & our_name,
const RepositoryCapabilities & caps) :
- PrivateImplementationPattern<Repository>(new Implementation<Repository>(our_name)),
+ PrivateImplementationPattern<Repository>(our_name),
RepositoryCapabilities(caps),
_imp(PrivateImplementationPattern<Repository>::_imp)
{
diff --git a/paludis/repository_factory.cc b/paludis/repository_factory.cc
index 8e992c4..c559ffc 100644
--- a/paludis/repository_factory.cc
+++ b/paludis/repository_factory.cc
@@ -113,7 +113,7 @@ namespace
}
RepositoryFactory::RepositoryFactory() :
- PrivateImplementationPattern<RepositoryFactory>(new Implementation<RepositoryFactory>)
+ PrivateImplementationPattern<RepositoryFactory>()
{
using namespace repository_groups;
diff --git a/paludis/repository_name_cache.cc b/paludis/repository_name_cache.cc
index c0cbf45..e3c7b07 100644
--- a/paludis/repository_name_cache.cc
+++ b/paludis/repository_name_cache.cc
@@ -180,8 +180,7 @@ Implementation<RepositoryNameCache>::update(const PackageNamePart & p, NameCache
RepositoryNameCache::RepositoryNameCache(
const FSEntry & location,
const Repository * const repo) :
- PrivateImplementationPattern<RepositoryNameCache>(new Implementation<RepositoryNameCache>(
- location, repo))
+ PrivateImplementationPattern<RepositoryNameCache>(location, repo)
{
}
diff --git a/paludis/resolver/constraint.cc b/paludis/resolver/constraint.cc
index 96bfeff..bc5af1b 100644
--- a/paludis/resolver/constraint.cc
+++ b/paludis/resolver/constraint.cc
@@ -60,7 +60,7 @@ namespace paludis
}
Constraints::Constraints() :
- PrivateImplementationPattern<Constraints>(new Implementation<Constraints>)
+ PrivateImplementationPattern<Constraints>()
{
}
diff --git a/paludis/resolver/decider.cc b/paludis/resolver/decider.cc
index e3d130d..7ee15d2 100644
--- a/paludis/resolver/decider.cc
+++ b/paludis/resolver/decider.cc
@@ -94,7 +94,7 @@ namespace paludis
Decider::Decider(const Environment * const e, const ResolverFunctions & f,
const std::shared_ptr<ResolutionsByResolvent> & l) :
- PrivateImplementationPattern<Decider>(new Implementation<Decider>(e, f, l))
+ PrivateImplementationPattern<Decider>(e, f, l)
{
}
diff --git a/paludis/resolver/decision.cc b/paludis/resolver/decision.cc
index 6a969e1..6a7b845 100644
--- a/paludis/resolver/decision.cc
+++ b/paludis/resolver/decision.cc
@@ -212,7 +212,7 @@ namespace paludis
}
NothingNoChangeDecision::NothingNoChangeDecision(const Resolvent & r, const bool t) :
- PrivateImplementationPattern<NothingNoChangeDecision>(new Implementation<NothingNoChangeDecision>(r, t))
+ PrivateImplementationPattern<NothingNoChangeDecision>(r, t)
{
}
@@ -267,8 +267,7 @@ namespace paludis
ExistingNoChangeDecision::ExistingNoChangeDecision(const Resolvent & l, const std::shared_ptr<const PackageID> & e,
const bool s, const bool v, const bool r, const bool t) :
- PrivateImplementationPattern<ExistingNoChangeDecision>(new Implementation<ExistingNoChangeDecision>(
- l, e, s, v, r, t))
+ PrivateImplementationPattern<ExistingNoChangeDecision>(l, e, s, v, r, t)
{
}
@@ -363,7 +362,7 @@ ChangesToMakeDecision::ChangesToMakeDecision(
const bool t,
const std::shared_ptr<const Destination> & d,
const std::function<void (ChangesToMakeDecision &)> & f) :
- PrivateImplementationPattern<ChangesToMakeDecision>(new Implementation<ChangesToMakeDecision>(r, o, b, c, t, d))
+ PrivateImplementationPattern<ChangesToMakeDecision>(r, o, b, c, t, d)
{
if (f)
f(*this);
@@ -484,7 +483,7 @@ UnableToMakeDecision::UnableToMakeDecision(
const Resolvent & l,
const std::shared_ptr<const UnsuitableCandidates> & u,
const bool t) :
- PrivateImplementationPattern<UnableToMakeDecision>(new Implementation<UnableToMakeDecision>(l, u, t))
+ PrivateImplementationPattern<UnableToMakeDecision>(l, u, t)
{
}
@@ -538,7 +537,7 @@ namespace paludis
}
RemoveDecision::RemoveDecision(const Resolvent & l, const std::shared_ptr<const PackageIDSequence> & i, const bool t) :
- PrivateImplementationPattern<RemoveDecision>(new Implementation<RemoveDecision>(l, i, t))
+ PrivateImplementationPattern<RemoveDecision>(l, i, t)
{
}
@@ -609,8 +608,7 @@ namespace paludis
}
BreakDecision::BreakDecision(const Resolvent & l, const std::shared_ptr<const PackageID> & e, const bool t) :
- PrivateImplementationPattern<BreakDecision>(new Implementation<BreakDecision>(
- l, e, t))
+ PrivateImplementationPattern<BreakDecision>(l, e, t)
{
}
diff --git a/paludis/resolver/decisions.cc b/paludis/resolver/decisions.cc
index cbf667d..d4c34d94 100644
--- a/paludis/resolver/decisions.cc
+++ b/paludis/resolver/decisions.cc
@@ -112,7 +112,7 @@ namespace paludis
template <typename Decision_, typename Notes_>
Decisions<Decision_, Notes_>::Decisions() :
- PrivateImplementationPattern<Decisions<Decision_, Notes_> >(new Implementation<Decisions<Decision_, Notes_> >)
+ PrivateImplementationPattern<Decisions<Decision_, Notes_> >()
{
}
diff --git a/paludis/resolver/job.cc b/paludis/resolver/job.cc
index 6a7adbd..1e7bb3a 100644
--- a/paludis/resolver/job.cc
+++ b/paludis/resolver/job.cc
@@ -47,7 +47,7 @@ namespace paludis
}
PretendJob::PretendJob(const PackageDepSpec & o) :
- PrivateImplementationPattern<PretendJob>(new Implementation<PretendJob>(o))
+ PrivateImplementationPattern<PretendJob>(o)
{
}
@@ -118,7 +118,7 @@ namespace paludis
FetchJob::FetchJob(
const std::shared_ptr<const JobRequirements> & r,
const PackageDepSpec & o) :
- PrivateImplementationPattern<FetchJob>(new Implementation<FetchJob>(r, o))
+ PrivateImplementationPattern<FetchJob>(r, o)
{
}
@@ -218,7 +218,7 @@ InstallJob::InstallJob(
const DestinationType t,
const std::shared_ptr<const Sequence<PackageDepSpec> > & r
) :
- PrivateImplementationPattern<InstallJob>(new Implementation<InstallJob>(q, o, d, t, r))
+ PrivateImplementationPattern<InstallJob>(q, o, d, t, r)
{
}
@@ -345,7 +345,7 @@ UninstallJob::UninstallJob(
const std::shared_ptr<const JobRequirements> & q,
const std::shared_ptr<const Sequence<PackageDepSpec> > & r
) :
- PrivateImplementationPattern<UninstallJob>(new Implementation<UninstallJob>(q, r))
+ PrivateImplementationPattern<UninstallJob>(q, r)
{
}
diff --git a/paludis/resolver/job_list.cc b/paludis/resolver/job_list.cc
index 167e6d9..dcd95f7 100644
--- a/paludis/resolver/job_list.cc
+++ b/paludis/resolver/job_list.cc
@@ -44,7 +44,7 @@ namespace paludis
template <typename Job_>
JobList<Job_>::JobList() :
- PrivateImplementationPattern<JobList<Job_> >(new Implementation<JobList<Job_> >)
+ PrivateImplementationPattern<JobList<Job_> >()
{
}
diff --git a/paludis/resolver/job_state.cc b/paludis/resolver/job_state.cc
index ab49d29..6f0120e 100644
--- a/paludis/resolver/job_state.cc
+++ b/paludis/resolver/job_state.cc
@@ -106,7 +106,7 @@ JobSkippedState::serialise(Serialiser & s) const
}
JobActiveState::JobActiveState() :
- PrivateImplementationPattern<JobActiveState>(new Implementation<JobActiveState>)
+ PrivateImplementationPattern<JobActiveState>()
{
}
@@ -153,7 +153,7 @@ JobActiveState::serialise(Serialiser & s) const
}
JobSucceededState::JobSucceededState(const std::shared_ptr<OutputManager> & m) :
- PrivateImplementationPattern<JobSucceededState>(new Implementation<JobSucceededState>(m))
+ PrivateImplementationPattern<JobSucceededState>(m)
{
}
@@ -182,7 +182,7 @@ JobSucceededState::serialise(Serialiser & s) const
}
JobFailedState::JobFailedState(const std::shared_ptr<OutputManager> & m) :
- PrivateImplementationPattern<JobFailedState>(new Implementation<JobFailedState>(m))
+ PrivateImplementationPattern<JobFailedState>(m)
{
}
diff --git a/paludis/resolver/nag.cc b/paludis/resolver/nag.cc
index 3e96bca..21c57a1 100644
--- a/paludis/resolver/nag.cc
+++ b/paludis/resolver/nag.cc
@@ -128,7 +128,7 @@ namespace paludis
}
NAG::NAG() :
- PrivateImplementationPattern<NAG>(new Implementation<NAG>)
+ PrivateImplementationPattern<NAG>()
{
}
diff --git a/paludis/resolver/orderer.cc b/paludis/resolver/orderer.cc
index 317b952..0da2c99 100644
--- a/paludis/resolver/orderer.cc
+++ b/paludis/resolver/orderer.cc
@@ -87,7 +87,7 @@ Orderer::Orderer(
const Environment * const e,
const ResolverFunctions & f,
const std::shared_ptr<Resolved> & r) :
- PrivateImplementationPattern<Orderer>(new Implementation<Orderer>(e, f, r))
+ PrivateImplementationPattern<Orderer>(e, f, r)
{
}
diff --git a/paludis/resolver/reason.cc b/paludis/resolver/reason.cc
index 2e0e3b8..3bc082a 100644
--- a/paludis/resolver/reason.cc
+++ b/paludis/resolver/reason.cc
@@ -47,7 +47,7 @@ namespace paludis
}
TargetReason::TargetReason(const std::string & x) :
- PrivateImplementationPattern<TargetReason>(new Implementation<TargetReason>(x))
+ PrivateImplementationPattern<TargetReason>(x)
{
}
@@ -94,7 +94,7 @@ DependencyReason::DependencyReason(const std::shared_ptr<const PackageID> & i,
const Resolvent & r,
const SanitisedDependency & d,
const bool a) :
- PrivateImplementationPattern<DependencyReason>(new Implementation<DependencyReason>(i, r, d, a))
+ PrivateImplementationPattern<DependencyReason>(i, r, d, a)
{
}
@@ -152,7 +152,7 @@ namespace paludis
}
DependentReason::DependentReason(const ChangeByResolvent & i) :
- PrivateImplementationPattern<DependentReason>(new Implementation<DependentReason>(i))
+ PrivateImplementationPattern<DependentReason>(i)
{
}
@@ -189,7 +189,7 @@ namespace paludis
}
WasUsedByReason::WasUsedByReason(const std::shared_ptr<const ChangeByResolventSequence> & i) :
- PrivateImplementationPattern<WasUsedByReason>(new Implementation<WasUsedByReason>(i))
+ PrivateImplementationPattern<WasUsedByReason>(i)
{
}
@@ -228,7 +228,7 @@ namespace paludis
}
PresetReason::PresetReason(const std::string & m, const std::shared_ptr<const Reason> & r) :
- PrivateImplementationPattern<PresetReason>(new Implementation<PresetReason>(m, r))
+ PrivateImplementationPattern<PresetReason>(m, r)
{
}
@@ -274,7 +274,7 @@ namespace paludis
}
SetReason::SetReason(const SetName & s, const std::shared_ptr<const Reason> & r) :
- PrivateImplementationPattern<SetReason>(new Implementation<SetReason>(s, r))
+ PrivateImplementationPattern<SetReason>(s, r)
{
}
@@ -320,7 +320,7 @@ namespace paludis
}
LikeOtherDestinationTypeReason::LikeOtherDestinationTypeReason(const Resolvent & s, const std::shared_ptr<const Reason> & r) :
- PrivateImplementationPattern<LikeOtherDestinationTypeReason>(new Implementation<LikeOtherDestinationTypeReason>(s, r))
+ PrivateImplementationPattern<LikeOtherDestinationTypeReason>(s, r)
{
}
@@ -364,7 +364,7 @@ namespace paludis
}
ViaBinaryReason::ViaBinaryReason(const Resolvent & r) :
- PrivateImplementationPattern<ViaBinaryReason>(new Implementation<ViaBinaryReason>(r))
+ PrivateImplementationPattern<ViaBinaryReason>(r)
{
}
diff --git a/paludis/resolver/resolutions_by_resolvent.cc b/paludis/resolver/resolutions_by_resolvent.cc
index f890549..3c510c4 100644
--- a/paludis/resolver/resolutions_by_resolvent.cc
+++ b/paludis/resolver/resolutions_by_resolvent.cc
@@ -54,7 +54,7 @@ namespace paludis
}
ResolutionsByResolvent::ResolutionsByResolvent() :
- PrivateImplementationPattern<ResolutionsByResolvent>(new Implementation<ResolutionsByResolvent>)
+ PrivateImplementationPattern<ResolutionsByResolvent>()
{
}
diff --git a/paludis/resolver/resolver.cc b/paludis/resolver/resolver.cc
index dcded34..c5981a0 100644
--- a/paludis/resolver/resolver.cc
+++ b/paludis/resolver/resolver.cc
@@ -84,7 +84,7 @@ namespace paludis
}
Resolver::Resolver(const Environment * const e, const ResolverFunctions & f) :
- PrivateImplementationPattern<Resolver>(new Implementation<Resolver>(e, f))
+ PrivateImplementationPattern<Resolver>(e, f)
{
}
diff --git a/paludis/resolver/sanitised_dependencies.cc b/paludis/resolver/sanitised_dependencies.cc
index 1daaeae..f94e058 100644
--- a/paludis/resolver/sanitised_dependencies.cc
+++ b/paludis/resolver/sanitised_dependencies.cc
@@ -439,7 +439,7 @@ namespace paludis
}
SanitisedDependencies::SanitisedDependencies() :
- PrivateImplementationPattern<SanitisedDependencies>(new Implementation<SanitisedDependencies>)
+ PrivateImplementationPattern<SanitisedDependencies>()
{
}
diff --git a/paludis/resolver/spec_rewriter.cc b/paludis/resolver/spec_rewriter.cc
index 95fcdce..be15dac 100644
--- a/paludis/resolver/spec_rewriter.cc
+++ b/paludis/resolver/spec_rewriter.cc
@@ -81,7 +81,7 @@ namespace paludis
}
SpecRewriter::SpecRewriter(const Environment * const e) :
- PrivateImplementationPattern<SpecRewriter>(new Implementation<SpecRewriter>(e))
+ PrivateImplementationPattern<SpecRewriter>(e)
{
}
diff --git a/paludis/resolver/suggest_restart.cc b/paludis/resolver/suggest_restart.cc
index b2d0d11..7a0de2e 100644
--- a/paludis/resolver/suggest_restart.cc
+++ b/paludis/resolver/suggest_restart.cc
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2009 Ciaran McCreesh
+ * Copyright (c) 2009, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -59,15 +59,13 @@ SuggestRestart::SuggestRestart(const Resolvent & q,
const std::shared_ptr<const Decision> & nd,
const std::shared_ptr<const Constraint> & nc
) throw () :
- PrivateImplementationPattern<SuggestRestart>(new Implementation<SuggestRestart>(q, pd, pc, nd, nc)),
+ PrivateImplementationPattern<SuggestRestart>(q, pd, pc, nd, nc),
Exception("Suggesting restart with " + stringify(nc->spec()) + " for " + stringify(q))
{
}
SuggestRestart::SuggestRestart(const SuggestRestart & o) :
- PrivateImplementationPattern<SuggestRestart>(new Implementation<SuggestRestart>(
- o.resolvent(), o.previous_decision(), o.problematic_constraint(),
- o.new_decision(), o.suggested_preset())),
+ PrivateImplementationPattern<SuggestRestart>(o.resolvent(), o.previous_decision(), o.problematic_constraint(), o.new_decision(), o.suggested_preset()),
Exception(o)
{
}
diff --git a/paludis/selection.cc b/paludis/selection.cc
index 74ab8f0..36a0eea 100644
--- a/paludis/selection.cc
+++ b/paludis/selection.cc
@@ -63,12 +63,12 @@ namespace paludis
}
Selection::Selection(const std::shared_ptr<const SelectionHandler> & h) :
- PrivateImplementationPattern<Selection>(new Implementation<Selection>(h))
+ PrivateImplementationPattern<Selection>(h)
{
}
Selection::Selection(const Selection & other) :
- PrivateImplementationPattern<Selection>(new Implementation<Selection>(other._imp->handler))
+ PrivateImplementationPattern<Selection>(other._imp->handler)
{
}
diff --git a/paludis/selection_cache.cc b/paludis/selection_cache.cc
index 3633859..9a8db2a 100644
--- a/paludis/selection_cache.cc
+++ b/paludis/selection_cache.cc
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2009 Ciaran McCreesh
+ * Copyright (c) 2009, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -56,7 +56,7 @@ namespace paludis
}
SelectionCache::SelectionCache() :
- PrivateImplementationPattern<SelectionCache>(new Implementation<SelectionCache>)
+ PrivateImplementationPattern<SelectionCache>()
{
}
@@ -84,7 +84,7 @@ SelectionCache::perform_select(const Environment * const env, const Selection &
}
ScopedSelectionCache::ScopedSelectionCache(Environment * const e) :
- PrivateImplementationPattern<ScopedSelectionCache>(new Implementation<ScopedSelectionCache>(e))
+ PrivateImplementationPattern<ScopedSelectionCache>(e)
{
_imp->environment->add_selection_cache(_imp->selection_cache);
}
diff --git a/paludis/selinux/security_context.cc b/paludis/selinux/security_context.cc
index 68c5706..dd09610 100644
--- a/paludis/selinux/security_context.cc
+++ b/paludis/selinux/security_context.cc
@@ -171,8 +171,8 @@ namespace paludis
};
}
-SecurityContext::SecurityContext()
- : PrivateImplementationPattern<SecurityContext>(new Implementation<SecurityContext>(0))
+SecurityContext::SecurityContext() :
+ PrivateImplementationPattern<SecurityContext>(security_context_t(0))
{
}
diff --git a/paludis/serialise.cc b/paludis/serialise.cc
index 89b573d..9418a72 100644
--- a/paludis/serialise.cc
+++ b/paludis/serialise.cc
@@ -172,7 +172,7 @@ namespace paludis
}
Deserialiser::Deserialiser(const Environment * const e, std::istream & s) :
- PrivateImplementationPattern<Deserialiser>(new Implementation<Deserialiser>(e, s))
+ PrivateImplementationPattern<Deserialiser>(e, s)
{
}
@@ -193,7 +193,7 @@ Deserialiser::environment() const
}
Deserialisation::Deserialisation(const std::string & i, Deserialiser & d) :
- PrivateImplementationPattern<Deserialisation>(new Implementation<Deserialisation>(d, i))
+ PrivateImplementationPattern<Deserialisation>(d, i)
{
char c;
if (! d.stream().get(c))
@@ -328,7 +328,7 @@ Deserialisation::deserialiser() const
}
Deserialisator::Deserialisator(Deserialisation & d, const std::string & c) :
- PrivateImplementationPattern<Deserialisator>(new Implementation<Deserialisator>(c))
+ PrivateImplementationPattern<Deserialisator>(c)
{
if (c != d.class_name())
throw InternalError(PALUDIS_HERE, "expected class name '" + stringify(c) + "' but got '"
diff --git a/paludis/set_file.cc b/paludis/set_file.cc
index 2c57973..6847752 100644
--- a/paludis/set_file.cc
+++ b/paludis/set_file.cc
@@ -601,7 +601,7 @@ namespace paludis
}
SetFile::SetFile(const SetFileParams & p) :
- PrivateImplementationPattern<SetFile>(new Implementation<SetFile>(p))
+ PrivateImplementationPattern<SetFile>(p)
{
}
diff --git a/paludis/show_suggest_visitor.cc b/paludis/show_suggest_visitor.cc
index 8963c64..2871309 100644
--- a/paludis/show_suggest_visitor.cc
+++ b/paludis/show_suggest_visitor.cc
@@ -71,7 +71,7 @@ namespace paludis
ShowSuggestVisitor::ShowSuggestVisitor(DepList * const d, const std::shared_ptr<const DestinationsSet> & dd,
const Environment * const e, const std::shared_ptr<const PackageID> & p, bool t, bool l) :
- PrivateImplementationPattern<ShowSuggestVisitor>(new Implementation<ShowSuggestVisitor>(d, dd, e, p, t, l))
+ PrivateImplementationPattern<ShowSuggestVisitor>(d, dd, e, p, t, l)
{
}
diff --git a/paludis/stringify_formatter-impl.hh b/paludis/stringify_formatter-impl.hh
index 990915d..8a47c1d 100644
--- a/paludis/stringify_formatter-impl.hh
+++ b/paludis/stringify_formatter-impl.hh
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2007, 2008, 2009 Ciaran McCreesh
+ * Copyright (c) 2007, 2008, 2009, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -182,37 +182,37 @@ namespace paludis
template <typename T_>
StringifyFormatter::StringifyFormatter(const T_ & t) :
- PrivateImplementationPattern<StringifyFormatter>(new Implementation<StringifyFormatter>(
- StringifyFormatterGetForwarder<std::is_convertible<T_ *, CanFormat<std::string> *>::value, std::string>::get(&t),
- StringifyFormatterGetForwarder<std::is_convertible<T_ *, CanFormat<ChoiceValue> *>::value, ChoiceValue>::get(&t),
- StringifyFormatterGetForwarder<std::is_convertible<T_ *, CanFormat<KeywordName> *>::value, KeywordName>::get(&t),
- StringifyFormatterGetForwarder<std::is_convertible<T_ *, CanFormat<PackageDepSpec> *>::value, PackageDepSpec>::get(&t),
- StringifyFormatterGetForwarder<std::is_convertible<T_ *, CanFormat<BlockDepSpec> *>::value, BlockDepSpec>::get(&t),
- StringifyFormatterGetForwarder<
- std::is_convertible<T_ *, CanFormat<FetchableURIDepSpec> *>::value,
- FetchableURIDepSpec>::get(&t),
- StringifyFormatterGetForwarder<
- std::is_convertible<T_ *, CanFormat<SimpleURIDepSpec> *>::value,
- SimpleURIDepSpec>::get(&t),
- StringifyFormatterGetForwarder<
- std::is_convertible<T_ *, CanFormat<LicenseDepSpec> *>::value,
- LicenseDepSpec>::get(&t),
- StringifyFormatterGetForwarder<
- std::is_convertible<T_ *, CanFormat<DependenciesLabelsDepSpec> *>::value,
- DependenciesLabelsDepSpec>::get(&t),
- StringifyFormatterGetForwarder<
- std::is_convertible<T_ *, CanFormat<URILabelsDepSpec> *>::value,
- URILabelsDepSpec>::get(&t),
- StringifyFormatterGetForwarder<
- std::is_convertible<T_ *, CanFormat<PlainTextDepSpec> *>::value,
- PlainTextDepSpec>::get(&t),
- StringifyFormatterGetForwarder<std::is_convertible<T_ *, CanFormat<ConditionalDepSpec> *>::value, ConditionalDepSpec>::get(&t),
- StringifyFormatterGetForwarder<std::is_convertible<T_ *, CanFormat<NamedSetDepSpec> *>::value, NamedSetDepSpec>::get(&t),
- StringifyFormatterGetForwarder<std::is_convertible<T_ *, CanFormat<FSEntry> *>::value, FSEntry>::get(&t),
- StringifyFormatterGetForwarder<std::is_convertible<T_ *, CanFormat<PackageID> *>::value, PackageID>::get(&t),
- StringifyFormatterGetForwarder<std::is_convertible<T_ *, CanFormat<PlainTextLabelDepSpec> *>::value, PlainTextLabelDepSpec>::get(&t),
- StringifyFormatterGetSpaceForwarder<std::is_convertible<T_ *, CanSpace *>::value>::get(&t)
- )),
+ PrivateImplementationPattern<StringifyFormatter>(
+ StringifyFormatterGetForwarder<std::is_convertible<T_ *, CanFormat<std::string> *>::value, std::string>::get(&t),
+ StringifyFormatterGetForwarder<std::is_convertible<T_ *, CanFormat<ChoiceValue> *>::value, ChoiceValue>::get(&t),
+ StringifyFormatterGetForwarder<std::is_convertible<T_ *, CanFormat<KeywordName> *>::value, KeywordName>::get(&t),
+ StringifyFormatterGetForwarder<std::is_convertible<T_ *, CanFormat<PackageDepSpec> *>::value, PackageDepSpec>::get(&t),
+ StringifyFormatterGetForwarder<std::is_convertible<T_ *, CanFormat<BlockDepSpec> *>::value, BlockDepSpec>::get(&t),
+ StringifyFormatterGetForwarder<
+ std::is_convertible<T_ *, CanFormat<FetchableURIDepSpec> *>::value,
+ FetchableURIDepSpec>::get(&t),
+ StringifyFormatterGetForwarder<
+ std::is_convertible<T_ *, CanFormat<SimpleURIDepSpec> *>::value,
+ SimpleURIDepSpec>::get(&t),
+ StringifyFormatterGetForwarder<
+ std::is_convertible<T_ *, CanFormat<LicenseDepSpec> *>::value,
+ LicenseDepSpec>::get(&t),
+ StringifyFormatterGetForwarder<
+ std::is_convertible<T_ *, CanFormat<DependenciesLabelsDepSpec> *>::value,
+ DependenciesLabelsDepSpec>::get(&t),
+ StringifyFormatterGetForwarder<
+ std::is_convertible<T_ *, CanFormat<URILabelsDepSpec> *>::value,
+ URILabelsDepSpec>::get(&t),
+ StringifyFormatterGetForwarder<
+ std::is_convertible<T_ *, CanFormat<PlainTextDepSpec> *>::value,
+ PlainTextDepSpec>::get(&t),
+ StringifyFormatterGetForwarder<std::is_convertible<T_ *, CanFormat<ConditionalDepSpec> *>::value, ConditionalDepSpec>::get(&t),
+ StringifyFormatterGetForwarder<std::is_convertible<T_ *, CanFormat<NamedSetDepSpec> *>::value, NamedSetDepSpec>::get(&t),
+ StringifyFormatterGetForwarder<std::is_convertible<T_ *, CanFormat<FSEntry> *>::value, FSEntry>::get(&t),
+ StringifyFormatterGetForwarder<std::is_convertible<T_ *, CanFormat<PackageID> *>::value, PackageID>::get(&t),
+ StringifyFormatterGetForwarder<std::is_convertible<T_ *, CanFormat<PlainTextLabelDepSpec> *>::value, PlainTextLabelDepSpec>::get(&t),
+ StringifyFormatterGetSpaceForwarder<std::is_convertible<T_ *, CanSpace *>::value>::get(&t)
+ ),
CanSpace()
{
}
diff --git a/paludis/stringify_formatter.cc b/paludis/stringify_formatter.cc
index 6ebc79f..5dcfa84 100644
--- a/paludis/stringify_formatter.cc
+++ b/paludis/stringify_formatter.cc
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2007, 2008, 2009 Ciaran McCreesh
+ * Copyright (c) 2007, 2008, 2009, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -28,8 +28,25 @@
using namespace paludis;
StringifyFormatter::StringifyFormatter() :
- PrivateImplementationPattern<StringifyFormatter>(new Implementation<StringifyFormatter>(
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0))
+ PrivateImplementationPattern<StringifyFormatter>(
+ static_cast<const CanFormat<std::string> *>(0),
+ static_cast<const CanFormat<ChoiceValue> *>(0),
+ static_cast<const CanFormat<KeywordName> *>(0),
+ static_cast<const CanFormat<PackageDepSpec> *>(0),
+ static_cast<const CanFormat<BlockDepSpec> *>(0),
+ static_cast<const CanFormat<FetchableURIDepSpec> *>(0),
+ static_cast<const CanFormat<SimpleURIDepSpec> *>(0),
+ static_cast<const CanFormat<LicenseDepSpec> *>(0),
+ static_cast<const CanFormat<DependenciesLabelsDepSpec> *>(0),
+ static_cast<const CanFormat<URILabelsDepSpec> *>(0),
+ static_cast<const CanFormat<PlainTextDepSpec> *>(0),
+ static_cast<const CanFormat<ConditionalDepSpec> *>(0),
+ static_cast<const CanFormat<NamedSetDepSpec> *>(0),
+ static_cast<const CanFormat<FSEntry> *>(0),
+ static_cast<const CanFormat<PackageID> *>(0),
+ static_cast<const CanFormat<PlainTextLabelDepSpec> *>(0),
+ static_cast<const CanSpace *>(0)
+ )
{
}
diff --git a/paludis/stripper.cc b/paludis/stripper.cc
index 9a0f656..5f9d4fa 100644
--- a/paludis/stripper.cc
+++ b/paludis/stripper.cc
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2008 Ciaran McCreesh
+ * Copyright (c) 2008, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -52,7 +52,7 @@ namespace paludis
}
Stripper::Stripper(const StripperOptions & options) :
- PrivateImplementationPattern<Stripper>(new Implementation<Stripper>(options))
+ PrivateImplementationPattern<Stripper>(options)
{
}
diff --git a/paludis/sync_task.cc b/paludis/sync_task.cc
index abd4e13..00a35b3 100644
--- a/paludis/sync_task.cc
+++ b/paludis/sync_task.cc
@@ -58,7 +58,7 @@ namespace paludis
}
SyncTask::SyncTask(Environment * const env, const bool p) :
- PrivateImplementationPattern<SyncTask>(new Implementation<SyncTask>(env, p))
+ PrivateImplementationPattern<SyncTask>(env, p)
{
}
diff --git a/paludis/tee_output_manager.cc b/paludis/tee_output_manager.cc
index d4ec655..a6ea40b 100644
--- a/paludis/tee_output_manager.cc
+++ b/paludis/tee_output_manager.cc
@@ -54,7 +54,7 @@ namespace paludis
TeeOutputManager::TeeOutputManager(
const std::shared_ptr<const OutputManagerSequence> & s,
const std::shared_ptr<const OutputManagerSequence> & ss) :
- PrivateImplementationPattern<TeeOutputManager>(new Implementation<TeeOutputManager>(s, ss))
+ PrivateImplementationPattern<TeeOutputManager>(s, ss)
{
for (OutputManagerSequence::ConstIterator i(_imp->streams->begin()), i_end(_imp->streams->end()) ;
i != i_end ; ++i)
diff --git a/paludis/uninstall_list.cc b/paludis/uninstall_list.cc
index ef472ba..963ac13 100644
--- a/paludis/uninstall_list.cc
+++ b/paludis/uninstall_list.cc
@@ -104,7 +104,7 @@ namespace
}
UninstallList::UninstallList(const Environment * const env, const UninstallListOptions & o) :
- PrivateImplementationPattern<UninstallList>(new Implementation<UninstallList>(env, o)),
+ PrivateImplementationPattern<UninstallList>(env, o),
options(_imp->options)
{
}
diff --git a/paludis/uninstall_task.cc b/paludis/uninstall_task.cc
index f2c66a9..3db8e48 100644
--- a/paludis/uninstall_task.cc
+++ b/paludis/uninstall_task.cc
@@ -125,7 +125,7 @@ namespace paludis
}
UninstallTask::UninstallTask(Environment * const e) :
- PrivateImplementationPattern<UninstallTask>(new Implementation<UninstallTask>(e))
+ PrivateImplementationPattern<UninstallTask>(e)
{
}
diff --git a/paludis/unmerger.cc b/paludis/unmerger.cc
index d473712..f6ce502 100644
--- a/paludis/unmerger.cc
+++ b/paludis/unmerger.cc
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2007, 2008, 2009 Ciaran McCreesh
+ * Copyright (c) 2007, 2008, 2009, 2010 Ciaran McCreesh
* Copyright (c) 2007 Piotr Jaroszyński
*
* This file is part of the Paludis package manager. Paludis is free software;
@@ -57,7 +57,7 @@ UnmergerError::UnmergerError(const std::string & s) throw () :
}
Unmerger::Unmerger(const UnmergerOptions & o) :
- PrivateImplementationPattern<Unmerger>(new Implementation<Unmerger>(o))
+ PrivateImplementationPattern<Unmerger>(o)
{
}
diff --git a/paludis/user_dep_spec.cc b/paludis/user_dep_spec.cc
index 63d344d..d755020 100644
--- a/paludis/user_dep_spec.cc
+++ b/paludis/user_dep_spec.cc
@@ -366,7 +366,7 @@ namespace paludis
}
UserKeyRequirement::UserKeyRequirement(const std::string & s) :
- PrivateImplementationPattern<UserKeyRequirement>(new Implementation<UserKeyRequirement>(s))
+ PrivateImplementationPattern<UserKeyRequirement>(s)
{
}
diff --git a/paludis/util/action_queue.cc b/paludis/util/action_queue.cc
index 9774fd2..ab7f5a2 100644
--- a/paludis/util/action_queue.cc
+++ b/paludis/util/action_queue.cc
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2007, 2008 Ciaran McCreesh
+ * Copyright (c) 2007, 2008, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -89,7 +89,7 @@ namespace paludis
}
ActionQueue::ActionQueue(const unsigned n_threads, const bool nice, const bool limit_size) :
- PrivateImplementationPattern<ActionQueue>(new Implementation<ActionQueue>(n_threads, nice, limit_size))
+ PrivateImplementationPattern<ActionQueue>(n_threads, nice, limit_size)
{
}
diff --git a/paludis/util/buffer_output_stream.cc b/paludis/util/buffer_output_stream.cc
index 74315d2..79219c6 100644
--- a/paludis/util/buffer_output_stream.cc
+++ b/paludis/util/buffer_output_stream.cc
@@ -43,7 +43,7 @@ namespace paludis
}
BufferOutputStreamBuf::BufferOutputStreamBuf() :
- PrivateImplementationPattern<BufferOutputStreamBuf>(new Implementation<BufferOutputStreamBuf>())
+ PrivateImplementationPattern<BufferOutputStreamBuf>()
{
setg(0, 0, 0);
}
diff --git a/paludis/util/config_file.cc b/paludis/util/config_file.cc
index 2809d87..ec0aea8 100644
--- a/paludis/util/config_file.cc
+++ b/paludis/util/config_file.cc
@@ -110,22 +110,22 @@ namespace paludis
}
ConfigFile::Source::Source(const FSEntry & f) :
- PrivateImplementationPattern<ConfigFile::Source>(new Implementation<ConfigFile::Source>(f))
+ PrivateImplementationPattern<ConfigFile::Source>(f)
{
}
ConfigFile::Source::Source(const std::string & f) :
- PrivateImplementationPattern<ConfigFile::Source>(new Implementation<ConfigFile::Source>(f))
+ PrivateImplementationPattern<ConfigFile::Source>(f)
{
}
ConfigFile::Source::Source(std::istream & f) :
- PrivateImplementationPattern<ConfigFile::Source>(new Implementation<ConfigFile::Source>(f))
+ PrivateImplementationPattern<ConfigFile::Source>(f)
{
}
ConfigFile::Source::Source(const ConfigFile::Source & f) :
- PrivateImplementationPattern<ConfigFile::Source>(new Implementation<ConfigFile::Source>(f._imp->filename, f._imp->text))
+ PrivateImplementationPattern<ConfigFile::Source>(f._imp->filename, f._imp->text)
{
}
@@ -190,7 +190,7 @@ namespace
}
LineConfigFile::LineConfigFile(const Source & sr, const LineConfigFileOptions & o) :
- PrivateImplementationPattern<LineConfigFile>(new Implementation<LineConfigFile>(o))
+ PrivateImplementationPattern<LineConfigFile>(o)
{
Context context("When parsing line-based configuration file '" + (sr.filename().empty() ? "?" : sr.filename()) + "':");
@@ -537,7 +537,7 @@ KeyValueConfigFile::KeyValueConfigFile(
const KeyValueConfigFileOptions & o,
const KeyValueConfigFile::DefaultFunction & f,
const KeyValueConfigFile::TransformationFunction & i) :
- PrivateImplementationPattern<KeyValueConfigFile>(new Implementation<KeyValueConfigFile>(o, f, i))
+ PrivateImplementationPattern<KeyValueConfigFile>(o, f, i)
{
Context context("When parsing key=value-based configuration file '" + (sr.filename().empty() ? "?" : sr.filename()) + "':");
diff --git a/paludis/util/damerau_levenshtein.cc b/paludis/util/damerau_levenshtein.cc
index 441b06a..98d4f02 100644
--- a/paludis/util/damerau_levenshtein.cc
+++ b/paludis/util/damerau_levenshtein.cc
@@ -42,7 +42,7 @@ namespace paludis
}
DamerauLevenshtein::DamerauLevenshtein(const std::string & name) :
- PrivateImplementationPattern<DamerauLevenshtein>(new Implementation<DamerauLevenshtein>(name))
+ PrivateImplementationPattern<DamerauLevenshtein>(name)
{
}
diff --git a/paludis/util/dir_iterator.cc b/paludis/util/dir_iterator.cc
index 94448fe..7c4b9d4 100644
--- a/paludis/util/dir_iterator.cc
+++ b/paludis/util/dir_iterator.cc
@@ -74,7 +74,7 @@ DirOpenError::DirOpenError(const FSEntry & location, const int errno_value) thro
}
DirIterator::DirIterator(const FSEntry & base, const DirIteratorOptions & options) :
- PrivateImplementationPattern<DirIterator>(new Implementation<DirIterator>(std::shared_ptr<EntrySet>()))
+ PrivateImplementationPattern<DirIterator>(std::shared_ptr<EntrySet>())
{
using namespace std::placeholders;
@@ -122,13 +122,13 @@ DirIterator::DirIterator(const FSEntry & base, const DirIteratorOptions & option
}
DirIterator::DirIterator(const DirIterator & other) :
- PrivateImplementationPattern<DirIterator>(new Implementation<DirIterator>(other._imp->items))
+ PrivateImplementationPattern<DirIterator>(other._imp->items)
{
_imp->iter = other._imp->iter;
}
DirIterator::DirIterator() :
- PrivateImplementationPattern<DirIterator>(new Implementation<DirIterator>(std::shared_ptr<EntrySet>(new EntrySet(&compare_name))))
+ PrivateImplementationPattern<DirIterator>(std::shared_ptr<EntrySet>(new EntrySet(&compare_name)))
{
_imp->iter = _imp->items->end();
}
diff --git a/paludis/util/elf.cc b/paludis/util/elf.cc
index 6ab6c4e..3a08b36 100644
--- a/paludis/util/elf.cc
+++ b/paludis/util/elf.cc
@@ -265,7 +265,7 @@ ElfObject<ElfType_>::is_valid_elf(std::istream & stream)
template <typename ElfType_>
ElfObject<ElfType_>::ElfObject(std::istream & stream) :
- PrivateImplementationPattern<ElfObject>(new Implementation<ElfObject>)
+ PrivateImplementationPattern<ElfObject>()
{
try
{
diff --git a/paludis/util/elf_dynamic_section.cc b/paludis/util/elf_dynamic_section.cc
index a98ec72..8d1f9f8 100644
--- a/paludis/util/elf_dynamic_section.cc
+++ b/paludis/util/elf_dynamic_section.cc
@@ -253,7 +253,7 @@ DynamicEntryString<ElfType_>::initialize(typename ElfType_::Word index, const ty
template <typename ElfType_>
DynamicEntries<ElfType_>::DynamicEntries() :
- PrivateImplementationPattern<DynamicEntries>(new Implementation<DynamicEntries>)
+ PrivateImplementationPattern<DynamicEntries>()
{
register_type(DT_NEEDED, std::make_shared<DynamicEntryString<ElfType_> >("NEEDED"));
register_type(DT_RPATH, std::make_shared<DynamicEntryString<ElfType_> >("RPATH"));
@@ -297,7 +297,7 @@ DynamicEntries<ElfType_>::has_entry(typename ElfType_::DynamicTag identifier) co
template <typename ElfType_>
DynamicSection<ElfType_>::DynamicSection(typename ElfType_::Word index, const typename ElfType_::SectionHeader & shdr, std::istream & stream, bool need_byte_swap) :
Section<ElfType_>(index, shdr),
- PrivateImplementationPattern<DynamicSection>(new Implementation<DynamicSection>)
+ PrivateImplementationPattern<DynamicSection>()
{
if (sizeof(typename ElfType_::DynamicEntry) != shdr.sh_entsize)
throw InvalidElfFileError(
diff --git a/paludis/util/elf_relocation_section.cc b/paludis/util/elf_relocation_section.cc
index 35c1fab..f5fe95c 100644
--- a/paludis/util/elf_relocation_section.cc
+++ b/paludis/util/elf_relocation_section.cc
@@ -101,7 +101,7 @@ template <typename ElfType_, typename Relocation_>
RelocationSection<ElfType_, Relocation_>::RelocationSection(
typename ElfType_::Word index, const typename ElfType_::SectionHeader & shdr, std::istream & stream, bool need_byte_swap) :
Section<ElfType_>(index, shdr),
- PrivateImplementationPattern<RelocationSection>(new Implementation<RelocationSection>)
+ PrivateImplementationPattern<RelocationSection>()
{
if (sizeof(typename Relocation_::Type) != shdr.sh_entsize)
throw InvalidElfFileError(
diff --git a/paludis/util/elf_symbol_section.cc b/paludis/util/elf_symbol_section.cc
index 3f558a7..d323b3b 100644
--- a/paludis/util/elf_symbol_section.cc
+++ b/paludis/util/elf_symbol_section.cc
@@ -164,7 +164,7 @@ Symbol<ElfType_>::~Symbol()
template <typename ElfType_>
SymbolSection<ElfType_>::SymbolSection(typename ElfType_::Word index, const typename ElfType_::SectionHeader & shdr, std::istream & stream, bool need_byte_swap) :
Section<ElfType_>(index, shdr),
- PrivateImplementationPattern<SymbolSection>(new Implementation<SymbolSection>),
+ PrivateImplementationPattern<SymbolSection>(),
_type("invalid")
{
if (shdr.sh_type == SHT_DYNSYM)
diff --git a/paludis/util/executor.cc b/paludis/util/executor.cc
index 7618111..82bc998 100644
--- a/paludis/util/executor.cc
+++ b/paludis/util/executor.cc
@@ -63,7 +63,7 @@ namespace paludis
}
Executor::Executor(int ms_update_interval) :
- PrivateImplementationPattern<Executor>(new Implementation<Executor>(ms_update_interval))
+ PrivateImplementationPattern<Executor>(ms_update_interval)
{
}
diff --git a/paludis/util/fs_entry.cc b/paludis/util/fs_entry.cc
index a84818b..560121d 100644
--- a/paludis/util/fs_entry.cc
+++ b/paludis/util/fs_entry.cc
@@ -109,13 +109,13 @@ namespace paludis
}
FSEntry::FSEntry(const std::string & path) :
- PrivateImplementationPattern<FSEntry>(new Implementation<FSEntry>(path))
+ PrivateImplementationPattern<FSEntry>(path)
{
_normalise();
}
FSEntry::FSEntry(const FSEntry & other) :
- PrivateImplementationPattern<FSEntry>(new Implementation<FSEntry>(other._imp->path))
+ PrivateImplementationPattern<FSEntry>(other._imp->path)
{
Lock l(other._imp->mutex);
_imp->stat_info = other._imp->stat_info;
@@ -124,7 +124,7 @@ FSEntry::FSEntry(const FSEntry & other) :
}
FSEntry::FSEntry(const std::string & path, unsigned char d_type) :
- PrivateImplementationPattern<FSEntry>(new Implementation<FSEntry>(path, d_type))
+ PrivateImplementationPattern<FSEntry>(path, d_type)
{
_normalise();
}
diff --git a/paludis/util/graph-impl.hh b/paludis/util/graph-impl.hh
index e751265..57c3770 100644
--- a/paludis/util/graph-impl.hh
+++ b/paludis/util/graph-impl.hh
@@ -113,13 +113,13 @@ namespace paludis
template <typename Node_, typename Edge_, typename Comparator_>
DirectedGraph<Node_, Edge_, Comparator_>::DirectedGraph() :
- PrivateImplementationPattern<DirectedGraph<Node_, Edge_, Comparator_> >(new Implementation<DirectedGraph<Node_, Edge_, Comparator_> >)
+ PrivateImplementationPattern<DirectedGraph<Node_, Edge_, Comparator_> >()
{
}
template <typename Node_, typename Edge_, typename Comparator_>
DirectedGraph<Node_, Edge_, Comparator_>::DirectedGraph(const DirectedGraph & g) :
- PrivateImplementationPattern<DirectedGraph<Node_, Edge_, Comparator_> >(new Implementation<DirectedGraph<Node_, Edge_, Comparator_> >(g._imp->store))
+ PrivateImplementationPattern<DirectedGraph<Node_, Edge_, Comparator_> >(g._imp->store)
{
}
diff --git a/paludis/util/log.cc b/paludis/util/log.cc
index eb988c9..5a568a3 100644
--- a/paludis/util/log.cc
+++ b/paludis/util/log.cc
@@ -127,7 +127,7 @@ namespace paludis
}
Log::Log() :
- PrivateImplementationPattern<Log>(new Implementation<Log>)
+ PrivateImplementationPattern<Log>()
{
}
diff --git a/paludis/util/map-impl.hh b/paludis/util/map-impl.hh
index 2d16182..edf004e 100644
--- a/paludis/util/map-impl.hh
+++ b/paludis/util/map-impl.hh
@@ -74,7 +74,7 @@ namespace paludis
template <typename K_, typename V_, typename C_>
paludis::Map<K_, V_, C_>::Map() :
- paludis::PrivateImplementationPattern<paludis::Map<K_, V_, C_> >(new paludis::Implementation<paludis::Map<K_, V_, C_> >)
+ paludis::PrivateImplementationPattern<paludis::Map<K_, V_, C_> >()
{
}
diff --git a/paludis/util/options.cc b/paludis/util/options.cc
index bba53c3..0c44bc5 100644
--- a/paludis/util/options.cc
+++ b/paludis/util/options.cc
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2007, 2009 Ciaran McCreesh
+ * Copyright (c) 2007, 2009, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -45,12 +45,12 @@ namespace paludis
}
OptionsStore::OptionsStore() :
- PrivateImplementationPattern<OptionsStore>(new Implementation<OptionsStore>)
+ PrivateImplementationPattern<OptionsStore>()
{
}
OptionsStore::OptionsStore(const OptionsStore & s) :
- PrivateImplementationPattern<OptionsStore>(new Implementation<OptionsStore>(*s._imp.get()))
+ PrivateImplementationPattern<OptionsStore>(*s._imp.get())
{
}
diff --git a/paludis/util/private_implementation_pattern-impl.hh b/paludis/util/private_implementation_pattern-impl.hh
index 3681ba4..db0ac25 100644
--- a/paludis/util/private_implementation_pattern-impl.hh
+++ b/paludis/util/private_implementation_pattern-impl.hh
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2005, 2006, 2007 Ciaran McCreesh
+ * Copyright (c) 2005, 2006, 2007, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -21,6 +21,7 @@
#define PALUDIS_GUARD_PALUDIS_UTIL_PRIVATE_IMPLEMENTATION_PATTERN_IMPL_HH 1
#include <paludis/util/private_implementation_pattern.hh>
+#include <utility>
/** \file
* Implementation for paludis/util/private_implementation_pattern.hh .
@@ -29,12 +30,20 @@
*/
template <typename C_>
-paludis::PrivateImplementationPattern<C_>::ImpPtr::ImpPtr(Implementation<C_> * p) :
- _ptr(p)
+template <typename... Args_>
+paludis::PrivateImplementationPattern<C_>::ImpPtr::ImpPtr(Args_ && ... args) :
+ _ptr(new Implementation<C_>{std::forward<Args_>(args)...})
{
}
template <typename C_>
+paludis::PrivateImplementationPattern<C_>::ImpPtr::ImpPtr(ImpPtr && other) :
+ _ptr(std::move(other._ptr))
+{
+ other._ptr = 0;
+}
+
+template <typename C_>
paludis::PrivateImplementationPattern<C_>::ImpPtr::~ImpPtr()
{
delete _ptr;
@@ -63,8 +72,9 @@ paludis::PrivateImplementationPattern<C_>::ImpPtr::reset(Implementation<C_> * p)
}
template <typename C_>
-paludis::PrivateImplementationPattern<C_>::PrivateImplementationPattern(Implementation<C_> * i) :
- _imp(i)
+template <typename... Args_>
+paludis::PrivateImplementationPattern<C_>::PrivateImplementationPattern(Args_ && ... args) :
+ _imp(std::forward<Args_>(args)...)
{
}
diff --git a/paludis/util/private_implementation_pattern.hh b/paludis/util/private_implementation_pattern.hh
index bf8963d..ea901a8 100644
--- a/paludis/util/private_implementation_pattern.hh
+++ b/paludis/util/private_implementation_pattern.hh
@@ -60,18 +60,22 @@ namespace paludis
class ImpPtr
{
private:
- ImpPtr(const ImpPtr &);
- void operator= (const ImpPtr &);
Implementation<C_> * _ptr;
public:
///\name Basic operations
///\{
- ImpPtr(Implementation<C_> * p);
+ template <typename... Args_>
+ explicit ImpPtr(Args_ && ... args);
~ImpPtr();
+ ImpPtr(ImpPtr &&);
+
+ ImpPtr(const ImpPtr &) = delete;
+ ImpPtr & operator= (const ImpPtr &) = delete;
+
///\}
///\name Dereference operators
@@ -101,7 +105,10 @@ namespace paludis
/**
* Constructor.
*/
- explicit PrivateImplementationPattern(Implementation<C_> * i);
+ template <typename... Args_>
+ explicit PrivateImplementationPattern(Args_ && ... args);
+
+ explicit PrivateImplementationPattern(Implementation<C_> *) = delete;
~PrivateImplementationPattern();
};
diff --git a/paludis/util/sequence-impl.hh b/paludis/util/sequence-impl.hh
index 281eb15..9917d5c 100644
--- a/paludis/util/sequence-impl.hh
+++ b/paludis/util/sequence-impl.hh
@@ -68,7 +68,7 @@ namespace paludis
template <typename T_>
paludis::Sequence<T_>::Sequence() :
- paludis::PrivateImplementationPattern<paludis::Sequence<T_> >(new paludis::Implementation<paludis::Sequence<T_> >)
+ paludis::PrivateImplementationPattern<paludis::Sequence<T_> >()
{
}
diff --git a/paludis/util/set-impl.hh b/paludis/util/set-impl.hh
index 6a2e1e0..7c5fa24 100644
--- a/paludis/util/set-impl.hh
+++ b/paludis/util/set-impl.hh
@@ -76,7 +76,7 @@ namespace paludis
template <typename T_, typename C_>
paludis::Set<T_, C_>::Set() :
- paludis::PrivateImplementationPattern<Set<T_, C_> >(new Implementation<Set<T_, C_> >)
+ paludis::PrivateImplementationPattern<Set<T_, C_> >()
{
}
diff --git a/paludis/util/simple_parser.cc b/paludis/util/simple_parser.cc
index bd853f0..00c5190 100644
--- a/paludis/util/simple_parser.cc
+++ b/paludis/util/simple_parser.cc
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2008, 2009 Ciaran McCreesh
+ * Copyright (c) 2008, 2009, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -235,7 +235,7 @@ namespace paludis
}
SimpleParser::SimpleParser(const std::string & s) :
- PrivateImplementationPattern<SimpleParser>(new Implementation<SimpleParser>(s))
+ PrivateImplementationPattern<SimpleParser>(s)
{
}
diff --git a/paludis/util/string_list_stream.cc b/paludis/util/string_list_stream.cc
index b87e0dd..25f9a7b 100644
--- a/paludis/util/string_list_stream.cc
+++ b/paludis/util/string_list_stream.cc
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2009 Ciaran McCreesh
+ * Copyright (c) 2009, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -47,7 +47,7 @@ namespace paludis
}
StringListStreamBuf::StringListStreamBuf() :
- PrivateImplementationPattern<StringListStreamBuf>(new Implementation<StringListStreamBuf>())
+ PrivateImplementationPattern<StringListStreamBuf>()
{
setg(0, 0, 0);
}
diff --git a/paludis/util/system.cc b/paludis/util/system.cc
index 07a64e6..bd04c89 100644
--- a/paludis/util/system.cc
+++ b/paludis/util/system.cc
@@ -230,25 +230,25 @@ namespace paludis
}
Command::Command(const std::string & s) :
- PrivateImplementationPattern<Command>(new Implementation<Command>(s))
+ PrivateImplementationPattern<Command>(s)
{
}
Command::Command(const char * const s) :
- PrivateImplementationPattern<Command>(new Implementation<Command>(s))
+ PrivateImplementationPattern<Command>(s)
{
}
Command::Command(const Command & other) :
- PrivateImplementationPattern<Command>(new Implementation<Command>(other._imp->command,
- other._imp->clearenv, other._imp->setenv_values, other._imp->chdir, other._imp->echo_to_stderr,
- other._imp->uid, other._imp->gid, other._imp->stdout_prefix, other._imp->stderr_prefix,
- other._imp->prefix_discard_blank_output,
- other._imp->prefix_blank_lines, other._imp->pipe_command_env_var_prefix,
- other._imp->pipe_command_handler, other._imp->captured_stdout_stream,
- other._imp->captured_stderr_stream, other._imp->output_stream, other._imp->output_fd,
- other._imp->output_fd_env_var, other._imp->input_stream, other._imp->input_fd,
- other._imp->input_fd_env_var, other._imp->ptys))
+ PrivateImplementationPattern<Command>(other._imp->command,
+ other._imp->clearenv, other._imp->setenv_values, other._imp->chdir, other._imp->echo_to_stderr,
+ other._imp->uid, other._imp->gid, other._imp->stdout_prefix, other._imp->stderr_prefix,
+ other._imp->prefix_discard_blank_output,
+ other._imp->prefix_blank_lines, other._imp->pipe_command_env_var_prefix,
+ other._imp->pipe_command_handler, other._imp->captured_stdout_stream,
+ other._imp->captured_stderr_stream, other._imp->output_stream, other._imp->output_fd,
+ other._imp->output_fd_env_var, other._imp->input_stream, other._imp->input_fd,
+ other._imp->input_fd_env_var, other._imp->ptys)
{
}
diff --git a/paludis/util/tail_output_stream.cc b/paludis/util/tail_output_stream.cc
index 0fb3f68..5373d9f 100644
--- a/paludis/util/tail_output_stream.cc
+++ b/paludis/util/tail_output_stream.cc
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2008 Ciaran McCreesh
+ * Copyright (c) 2008, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -48,7 +48,7 @@ namespace paludis
}
TailOutputStreamBuf::TailOutputStreamBuf(const unsigned int n) :
- PrivateImplementationPattern<TailOutputStreamBuf>(new Implementation<TailOutputStreamBuf>(n))
+ PrivateImplementationPattern<TailOutputStreamBuf>(n)
{
}
diff --git a/paludis/util/tee_output_stream.cc b/paludis/util/tee_output_stream.cc
index 00cb71f..5b08a71 100644
--- a/paludis/util/tee_output_stream.cc
+++ b/paludis/util/tee_output_stream.cc
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2008, 2009 Ciaran McCreesh
+ * Copyright (c) 2008, 2009, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -33,7 +33,7 @@ namespace paludis
}
TeeOutputStreamBuf::TeeOutputStreamBuf() :
- PrivateImplementationPattern<TeeOutputStreamBuf>(new Implementation<TeeOutputStreamBuf>)
+ PrivateImplementationPattern<TeeOutputStreamBuf>()
{
}
diff --git a/paludis/util/thread_pool.cc b/paludis/util/thread_pool.cc
index deb310d..5d40452 100644
--- a/paludis/util/thread_pool.cc
+++ b/paludis/util/thread_pool.cc
@@ -35,7 +35,7 @@ namespace paludis
}
ThreadPool::ThreadPool() :
- PrivateImplementationPattern<ThreadPool>(new Implementation<ThreadPool>)
+ PrivateImplementationPattern<ThreadPool>()
{
}
diff --git a/paludis/util/wildcard_expander.cc b/paludis/util/wildcard_expander.cc
index 2356ac9..fce77fd 100644
--- a/paludis/util/wildcard_expander.cc
+++ b/paludis/util/wildcard_expander.cc
@@ -108,7 +108,7 @@ namespace
}
WildcardExpander::WildcardExpander(const std::string & pattern, const paludis::FSEntry & root) :
- PrivateImplementationPattern<WildcardExpander>(new Implementation<WildcardExpander>)
+ PrivateImplementationPattern<WildcardExpander>()
{
// GLOB_NOCHECK seems to be buggy in glibc 2.5: fails
// TEST_CHECK_EQUAL(expand("/foo\\*"), "/foo*");
@@ -125,14 +125,13 @@ WildcardExpander::WildcardExpander(const std::string & pattern, const paludis::F
}
WildcardExpander::WildcardExpander() :
- PrivateImplementationPattern<WildcardExpander>(new Implementation<WildcardExpander>)
+ PrivateImplementationPattern<WildcardExpander>()
{
_imp->it = _imp->files->end();
}
WildcardExpander::WildcardExpander(const WildcardExpander & other) :
- PrivateImplementationPattern<WildcardExpander>(
- new Implementation<WildcardExpander>(other._imp->files, other._imp->it))
+ PrivateImplementationPattern<WildcardExpander>(other._imp->files, other._imp->it)
{
}
diff --git a/paludis/version_spec.cc b/paludis/version_spec.cc
index 5f36353..e83b35b 100644
--- a/paludis/version_spec.cc
+++ b/paludis/version_spec.cc
@@ -92,7 +92,7 @@ namespace paludis
}
VersionSpec::VersionSpec(const std::string & text, const VersionSpecOptions & options) :
- PrivateImplementationPattern<VersionSpec>(new Implementation<VersionSpec>(options))
+ PrivateImplementationPattern<VersionSpec>(options)
{
Context c("When parsing version spec '" + text + "':");
@@ -330,7 +330,7 @@ VersionSpec::VersionSpec(const std::string & text, const VersionSpecOptions & op
}
VersionSpec::VersionSpec(const VersionSpec & other) :
- PrivateImplementationPattern<VersionSpec>(new Implementation<VersionSpec>(other._imp->options))
+ PrivateImplementationPattern<VersionSpec>(other._imp->options)
{
_imp->text = other._imp->text;
_imp->parts = other._imp->parts;
diff --git a/python/dep_spec.cc b/python/dep_spec.cc
index d1b3365..5498b5d 100644
--- a/python/dep_spec.cc
+++ b/python/dep_spec.cc
@@ -111,7 +111,7 @@ namespace paludis
}
PythonCompositeDepSpec::PythonCompositeDepSpec() :
- PrivateImplementationPattern<PythonCompositeDepSpec>(new Implementation<PythonCompositeDepSpec>)
+ PrivateImplementationPattern<PythonCompositeDepSpec>()
{
}
@@ -214,18 +214,18 @@ deep_copy(const std::shared_ptr<const T_> & x)
PythonPackageDepSpec::PythonPackageDepSpec(const PackageDepSpec & p) :
PythonStringDepSpec(p.text()),
- PrivateImplementationPattern<PythonPackageDepSpec>(new Implementation<PythonPackageDepSpec>(
- deep_copy(p.package_ptr()),
- deep_copy(p.category_name_part_ptr()),
- deep_copy(p.package_name_part_ptr()),
- std::make_shared<VersionRequirements>(),
- p.version_requirements_mode(),
- p.slot_requirement_ptr(),
- deep_copy(p.in_repository_ptr()),
- deep_copy(p.from_repository_ptr()),
- p.additional_requirements_ptr(),
- p.tag(),
- stringify(p)))
+ PrivateImplementationPattern<PythonPackageDepSpec>(
+ deep_copy(p.package_ptr()),
+ deep_copy(p.category_name_part_ptr()),
+ deep_copy(p.package_name_part_ptr()),
+ std::make_shared<VersionRequirements>(),
+ p.version_requirements_mode(),
+ p.slot_requirement_ptr(),
+ deep_copy(p.in_repository_ptr()),
+ deep_copy(p.from_repository_ptr()),
+ p.additional_requirements_ptr(),
+ p.tag(),
+ stringify(p))
{
if (p.version_requirements_ptr())
{
@@ -236,18 +236,18 @@ PythonPackageDepSpec::PythonPackageDepSpec(const PackageDepSpec & p) :
PythonPackageDepSpec::PythonPackageDepSpec(const PythonPackageDepSpec & p) :
PythonStringDepSpec(p.text()),
- PrivateImplementationPattern<PythonPackageDepSpec>(new Implementation<PythonPackageDepSpec>(
- deep_copy(p.package_ptr()),
- deep_copy(p.category_name_part_ptr()),
- deep_copy(p.package_name_part_ptr()),
- std::make_shared<VersionRequirements>(),
- p.version_requirements_mode(),
- p.slot_requirement_ptr(),
- deep_copy(p.in_repository_ptr()),
- deep_copy(p.from_repository_ptr()),
- p.additional_requirements_ptr(),
- p.tag(),
- p.py_str()))
+ PrivateImplementationPattern<PythonPackageDepSpec>(
+ deep_copy(p.package_ptr()),
+ deep_copy(p.category_name_part_ptr()),
+ deep_copy(p.package_name_part_ptr()),
+ std::make_shared<VersionRequirements>(),
+ p.version_requirements_mode(),
+ p.slot_requirement_ptr(),
+ deep_copy(p.in_repository_ptr()),
+ deep_copy(p.from_repository_ptr()),
+ p.additional_requirements_ptr(),
+ p.tag(),
+ p.py_str())
{
std::copy(p.version_requirements_ptr()->begin(), p.version_requirements_ptr()->end(),
_imp->version_requirements->back_inserter());
diff --git a/python/exception.cc b/python/exception.cc
index 748380d..a191f03 100644
--- a/python/exception.cc
+++ b/python/exception.cc
@@ -46,7 +46,7 @@ namespace paludis
}
ExceptionRegister::ExceptionRegister() :
- PrivateImplementationPattern<ExceptionRegister>(new Implementation<ExceptionRegister>)
+ PrivateImplementationPattern<ExceptionRegister>()
{
}
diff --git a/ruby/paludis_ruby.cc b/ruby/paludis_ruby.cc
index ed4dc27..8564b5d 100644
--- a/ruby/paludis_ruby.cc
+++ b/ruby/paludis_ruby.cc
@@ -155,7 +155,7 @@ namespace
}
RegisterRubyClass::RegisterRubyClass() :
- PrivateImplementationPattern<RegisterRubyClass>(new Implementation<RegisterRubyClass>)
+ PrivateImplementationPattern<RegisterRubyClass>()
{
}
diff --git a/src/clients/cave/cmd_resolve_display_callback.cc b/src/clients/cave/cmd_resolve_display_callback.cc
index 697d927..d0f18a1 100644
--- a/src/clients/cave/cmd_resolve_display_callback.cc
+++ b/src/clients/cave/cmd_resolve_display_callback.cc
@@ -51,7 +51,7 @@ namespace paludis
DisplayCallback::DisplayCallback(const std::string & s) :
- PrivateImplementationPattern<DisplayCallback>(new Implementation<DisplayCallback>(s))
+ PrivateImplementationPattern<DisplayCallback>(s)
{
if (_imp->output)
std::cout << _imp->stage << std::flush;
diff --git a/src/clients/cave/command_factory.cc b/src/clients/cave/command_factory.cc
index a0c723d..d639f69 100644
--- a/src/clients/cave/command_factory.cc
+++ b/src/clients/cave/command_factory.cc
@@ -109,7 +109,7 @@ namespace
}
CommandFactory::CommandFactory() :
- PrivateImplementationPattern<CommandFactory>(new Implementation<CommandFactory>)
+ PrivateImplementationPattern<CommandFactory>()
{
std::vector<std::string> paths;
tokenise<delim_kind::AnyOfTag, delim_mode::DelimiterTag>(getenv_with_default("CAVE_COMMANDS_PATH", LIBEXECDIR "/cave/commands"),
diff --git a/src/clients/cave/script_command.cc b/src/clients/cave/script_command.cc
index 3190213..60bd285 100644
--- a/src/clients/cave/script_command.cc
+++ b/src/clients/cave/script_command.cc
@@ -51,7 +51,7 @@ namespace paludis
}
ScriptCommand::ScriptCommand(const std::string &, const FSEntry & e) :
- PrivateImplementationPattern<ScriptCommand>(new Implementation<ScriptCommand>(e))
+ PrivateImplementationPattern<ScriptCommand>(e)
{
}
diff --git a/src/clients/inquisitio/exact_matcher.cc b/src/clients/inquisitio/exact_matcher.cc
index a930a40..c70439d 100644
--- a/src/clients/inquisitio/exact_matcher.cc
+++ b/src/clients/inquisitio/exact_matcher.cc
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2007 Ciaran McCreesh
+ * Copyright (c) 2007, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -39,7 +39,7 @@ namespace paludis
}
ExactMatcher::ExactMatcher(const std::string & s) :
- PrivateImplementationPattern<ExactMatcher>(new Implementation<ExactMatcher>(s))
+ PrivateImplementationPattern<ExactMatcher>(s)
{
}
diff --git a/src/clients/inquisitio/key_extractor.cc b/src/clients/inquisitio/key_extractor.cc
index ae47d3b..818bbb8 100644
--- a/src/clients/inquisitio/key_extractor.cc
+++ b/src/clients/inquisitio/key_extractor.cc
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2007, 2008, 2009 Ciaran McCreesh
+ * Copyright (c) 2007, 2008, 2009, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -61,7 +61,7 @@ namespace paludis
KeyExtractor::KeyExtractor(const std::string & k, const bool f, const bool v,
const Environment & e) :
- PrivateImplementationPattern<KeyExtractor>(new Implementation<KeyExtractor>(k, f, v, e))
+ PrivateImplementationPattern<KeyExtractor>(k, f, v, e)
{
}
diff --git a/src/clients/inquisitio/pcre_matcher.cc b/src/clients/inquisitio/pcre_matcher.cc
index c7a210e..205a565 100644
--- a/src/clients/inquisitio/pcre_matcher.cc
+++ b/src/clients/inquisitio/pcre_matcher.cc
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2007, 2009 Ciaran McCreesh
+ * Copyright (c) 2007, 2009, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -41,7 +41,7 @@ namespace paludis
}
PCREMatcher::PCREMatcher(const std::string & s) :
- PrivateImplementationPattern<PCREMatcher>(new Implementation<PCREMatcher>(s))
+ PrivateImplementationPattern<PCREMatcher>(s)
{
}
diff --git a/src/clients/inquisitio/text_matcher.cc b/src/clients/inquisitio/text_matcher.cc
index 9be0004..67396f2 100644
--- a/src/clients/inquisitio/text_matcher.cc
+++ b/src/clients/inquisitio/text_matcher.cc
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2007 Ciaran McCreesh
+ * Copyright (c) 2007, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -39,7 +39,7 @@ namespace paludis
}
TextMatcher::TextMatcher(const std::string & s) :
- PrivateImplementationPattern<TextMatcher>(new Implementation<TextMatcher>(s))
+ PrivateImplementationPattern<TextMatcher>(s)
{
}
diff --git a/src/output/console_query_task.cc b/src/output/console_query_task.cc
index 29e32b9..831d1e8 100644
--- a/src/output/console_query_task.cc
+++ b/src/output/console_query_task.cc
@@ -77,7 +77,7 @@ namespace
}
ConsoleQueryTask::ConsoleQueryTask(const Environment * const e) :
- PrivateImplementationPattern<ConsoleQueryTask>(new Implementation<ConsoleQueryTask>(e))
+ PrivateImplementationPattern<ConsoleQueryTask>(e)
{
}
diff --git a/src/output/mask_displayer.cc b/src/output/mask_displayer.cc
index 86b6169..3890c65 100644
--- a/src/output/mask_displayer.cc
+++ b/src/output/mask_displayer.cc
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2007, 2008, 2009 Ciaran McCreesh
+ * Copyright (c) 2007, 2008, 2009, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -201,7 +201,7 @@ namespace
MaskDisplayer::MaskDisplayer(const Environment * const e, const std::shared_ptr<const PackageID> & id,
const bool want_description) :
- PrivateImplementationPattern<MaskDisplayer>(new Implementation<MaskDisplayer>(e, id, want_description))
+ PrivateImplementationPattern<MaskDisplayer>(e, id, want_description)
{
}
diff --git a/test/test_framework.cc b/test/test_framework.cc
index 4e4759f..8dd4396 100644
--- a/test/test_framework.cc
+++ b/test/test_framework.cc
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2006, 2007, 2009 Ciaran McCreesh
+ * Copyright (c) 2006, 2007, 2009, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -111,8 +111,7 @@ TestMessageSuffix::suffixes()
}
TestMessageSuffix::TestMessageSuffix(const std::string & s, bool write) :
- paludis::PrivateImplementationPattern<TestMessageSuffix>(
- new paludis::Implementation<TestMessageSuffix>)
+ paludis::PrivateImplementationPattern<TestMessageSuffix>()
{
paludis::Implementation<TestMessageSuffix>::suffixes.push_back(s);
if (write)
@@ -145,7 +144,7 @@ namespace paludis
}
TestCase::TestCase(const std::string & our_name) :
- paludis::PrivateImplementationPattern<TestCase>(new paludis::Implementation<TestCase>(our_name))
+ paludis::PrivateImplementationPattern<TestCase>(our_name)
{
TestCaseList::register_test_case(this);
}