From a50677ff267de0f3ae4fdee13352cde6699c9da7 Mon Sep 17 00:00:00 2001 From: Jan Kupec Date: Wed, 27 Feb 2008 19:09:11 +0000 Subject: [PATCH] - use scoped pointer for Zypper - cleanup --- src/zypper.cc | 8 +++----- src/zypper.h | 16 +++++++--------- 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/src/zypper.cc b/src/zypper.cc index 8fdde8a..02cc69d 100644 --- a/src/zypper.cc +++ b/src/zypper.cc @@ -47,14 +47,12 @@ using namespace std; using namespace zypp; -//using namespace zypp::detail; using namespace boost; ZYpp::Ptr God = NULL; RuntimeData gData; parsed_opts copts; // command options -IMPL_PTR_TYPE(Zypper); Zypper::Zypper() : _argc(0), _argv(NULL), _out_ptr(NULL), @@ -74,12 +72,12 @@ Zypper::~Zypper() } -Zypper_Ptr Zypper::instance() +Zypper::Ptr & Zypper::instance() { - static Zypper_Ptr _instance; + static Zypper::Ptr _instance; if (!_instance) - _instance = new Zypper(); + _instance.reset(new Zypper()); else XXX << "Got an existing instance." << endl; diff --git a/src/zypper.h b/src/zypper.h index fccec5d..058118a 100644 --- a/src/zypper.h +++ b/src/zypper.h @@ -5,7 +5,6 @@ #include #include "zypp/base/Exception.h" -#include "zypp/base/ReferenceCounted.h" #include "zypp/base/NonCopyable.h" #include "zypp/base/PtrTypes.h" @@ -74,13 +73,12 @@ struct CommandOptions bool license_auto_agree; }; - -DEFINE_PTR_TYPE(Zypper); - -class Zypper : public zypp::base::ReferenceCounted, private zypp::base::NonCopyable +class Zypper : private zypp::base::NonCopyable { public: - static Zypper_Ptr instance(); + typedef zypp::RW_pointer > Ptr; + + static Ptr & instance(); int main(int argc, char ** argv); @@ -99,10 +97,11 @@ public: int argc() { return _running_shell ? _sh_argc : _argc; } char ** argv() { return _running_shell ? _sh_argv : _argv; } - + +public: + ~Zypper(); private: Zypper(); - ~Zypper(); void processGlobalOptions(); void processCommandOptions(); @@ -159,7 +158,6 @@ struct RuntimeData }; extern RuntimeData gData; -extern std::ostream no_stream; class ExitRequestException : public zypp::Exception { -- 2.7.4