From: Joshua Brindle <method@manicmethod.com>
To: selinux@tycho.nsa.gov
Cc: sds@tycho.nsa.gov, kmacmillan@mentalrootkit.com, tmiller@tresys.com
Subject: [POLICYREP] [patch 5/7] fix operator= calls to return pointer
Date: Tue, 22 Jan 2008 14:43:36 -0500 [thread overview]
Message-ID: <20080121160228.354469219@manicmethod.com> (raw)
In-Reply-To: 20080121160031.792610312@manicmethod.com
foo = bar is expected to return a pointer to the object being set, fix all classes to do this
---
libpolicyrep/include/policyrep/conditional.hpp | 8 +++---
libpolicyrep/include/policyrep/idset.hpp | 2 -
libpolicyrep/include/policyrep/mls.hpp | 10 ++++----
libpolicyrep/include/policyrep/object_class.hpp | 4 +--
libpolicyrep/include/policyrep/optional.hpp | 4 +--
libpolicyrep/include/policyrep/parse.hpp | 2 -
libpolicyrep/include/policyrep/policy.hpp | 6 ++--
libpolicyrep/include/policyrep/policy_base.hpp | 12 ++++-----
libpolicyrep/include/policyrep/rbac.hpp | 2 -
libpolicyrep/include/policyrep/rule.hpp | 4 +--
libpolicyrep/include/policyrep/te_decl.hpp | 8 +++---
libpolicyrep/include/policyrep/user.hpp | 2 -
libpolicyrep/src/conditional.cpp | 20 ++++++++++------
libpolicyrep/src/idset.cpp | 3 +-
libpolicyrep/src/mls.cpp | 12 ++++++---
libpolicyrep/src/object_class.cpp | 10 ++++----
libpolicyrep/src/optional.cpp | 12 ++++++---
libpolicyrep/src/parse.cpp | 3 +-
libpolicyrep/src/policy.cpp | 18 +++++++++-----
libpolicyrep/src/policy_base.cpp | 29 +++++++++++++++---------
libpolicyrep/src/rbac.cpp | 4 ++-
libpolicyrep/src/rule.cpp | 12 ++++++---
libpolicyrep/src/te_decl.cpp | 17 +++++++++-----
libpolicyrep/src/user.cpp | 3 +-
24 files changed, 126 insertions(+), 81 deletions(-)
--- policyrep.new.orig/libpolicyrep/include/policyrep/conditional.hpp
+++ policyrep.new/libpolicyrep/include/policyrep/conditional.hpp
@@ -47,7 +47,7 @@ namespace policyrep
CondBool(const std::string& name, bool v);
CondBool(const CondBool& other);
virtual ~CondBool();
- virtual void operator=(const CondBool& other);
+ virtual CondBool& operator=(const CondBool& other);
virtual void set_default_value(bool v);
@@ -75,7 +75,7 @@ namespace policyrep
CondOp(Op op);
CondOp(const CondOp& other);
virtual ~CondOp();
- virtual void operator=(const CondOp& other);
+ virtual CondOp& operator=(const CondOp& other);
virtual void set_op(Op op);
virtual Op get_op() const;
@@ -113,7 +113,7 @@ namespace policyrep
CondBlock(CondBranchPtr if_, CondBranchPtr else_);
CondBlock(const CondBlock& other);
virtual ~CondBlock();
- virtual void operator=(const CondBlock& other);
+ virtual CondBlock& operator=(const CondBlock& other);
protected:
void copy(const CondBlock& other);
CondBlockImpl* impl;
@@ -130,7 +130,7 @@ namespace policyrep
CondBranch();
CondBranch(const CondBranch& other);
virtual ~CondBranch();
- virtual void operator=(const CondBranch& other);
+ virtual CondBranch& operator=(const CondBranch& other);
virtual CondExpr& expr();
protected:
--- policyrep.new.orig/libpolicyrep/include/policyrep/idset.hpp
+++ policyrep.new/libpolicyrep/include/policyrep/idset.hpp
@@ -16,7 +16,7 @@ namespace policyrep
IdSet();
IdSet(const IdSet& other);
~IdSet();
- void operator=(const IdSet& other);
+ IdSet& operator=(const IdSet& other);
void set_compl(bool val);
bool get_compl() const;
--- policyrep.new.orig/libpolicyrep/include/policyrep/mls.hpp
+++ policyrep.new/libpolicyrep/include/policyrep/mls.hpp
@@ -21,7 +21,7 @@ namespace policyrep
Sensitivity(const std::string& name);
Sensitivity(const Sensitivity& other);
virtual ~Sensitivity();
- virtual void operator=(const Sensitivity& other);
+ virtual Sensitivity& operator=(const Sensitivity& other);
template<class T>
Sensitivity(const std::string& name, T begin, T end)
@@ -50,7 +50,7 @@ namespace policyrep
Dominance();
Dominance(const Dominance& other);
virtual ~Dominance();
- virtual void operator=(const Dominance& other);
+ virtual Dominance& operator=(const Dominance& other);
template<class T>
Dominance(T begin, T end)
@@ -79,7 +79,7 @@ namespace policyrep
Category(const std::string& name);
Category(const Category& other);
virtual ~Category();
- virtual void operator=(const Category& other);
+ virtual Category& operator=(const Category& other);
template<class T>
Category(const std::string& name, T begin, T end)
@@ -109,7 +109,7 @@ namespace policyrep
Level(const std::string& name);
Level(const Level& other);
virtual ~Level();
- virtual void operator=(const Level& other);
+ virtual Level& operator=(const Level& other);
template<class T>
Level(const std::string& name, T begin, T end)
@@ -145,7 +145,7 @@ namespace policyrep
virtual const LevelPtr& get_high() const;
virtual LevelPtr& get_low();
virtual LevelPtr& get_high();
- virtual void operator=(const Range& other);
+ virtual Range& operator=(const Range& other);
virtual void do_output(std::ostream& o, const OutputFormatter& op) const;
protected:
void init();
--- policyrep.new.orig/libpolicyrep/include/policyrep/object_class.hpp
+++ policyrep.new/libpolicyrep/include/policyrep/object_class.hpp
@@ -20,7 +20,7 @@ namespace policyrep
CommonPerms();
CommonPerms(const CommonPerms& other);
virtual ~CommonPerms();
- virtual void operator=(const CommonPerms& other);
+ virtual CommonPerms& operator=(const CommonPerms& other);
template<class T>
CommonPerms(const std::string& name, T perms_begin, T perms_end)
@@ -53,7 +53,7 @@ namespace policyrep
ObjectClass(const std::string& name, const std::string& commons);
ObjectClass(const ObjectClass& other);
virtual ~ObjectClass();
- virtual void operator=(const ObjectClass& other);
+ virtual ObjectClass& operator=(const ObjectClass& other);
template<class T>
ObjectClass(std::string name, std::string commons,
--- policyrep.new.orig/libpolicyrep/include/policyrep/optional.hpp
+++ policyrep.new/libpolicyrep/include/policyrep/optional.hpp
@@ -19,7 +19,7 @@ namespace policyrep
OptionalBlock(OptionalBranchPtr true_);
OptionalBlock(OptionalBranchPtr true_, OptionalBranchPtr false_);
virtual ~OptionalBlock();
- virtual void operator=(const OptionalBlock& other);
+ virtual OptionalBlock& operator=(const OptionalBlock& other);
protected:
void copy(const OptionalBlock& other);
OptionalBlockImpl* impl;
@@ -33,7 +33,7 @@ namespace policyrep
OptionalBranch();
OptionalBranch(const OptionalBranch& other);
virtual ~OptionalBranch();
- virtual void operator=(const OptionalBranch& other);
+ virtual OptionalBranch& operator=(const OptionalBranch& other);
protected:
virtual void do_output(std::ostream& o, const OutputFormatter& op) const;
--- policyrep.new.orig/libpolicyrep/include/policyrep/parse.hpp
+++ policyrep.new/libpolicyrep/include/policyrep/parse.hpp
@@ -18,7 +18,7 @@ namespace policyrep {
Parser();
Parser(const Parser& other);
virtual ~Parser();
- virtual void operator=(const Parser& other);
+ virtual Parser& operator=(const Parser& other);
// Parser
virtual ModulePtr parse(const std::string& f);
--- policyrep.new.orig/libpolicyrep/include/policyrep/policy.hpp
+++ policyrep.new/libpolicyrep/include/policyrep/policy.hpp
@@ -28,7 +28,7 @@ namespace policyrep
Policy(bool mls=false);
Policy(const Policy& other);
virtual ~Policy();
- virtual void operator=(const Policy& other);
+ virtual Policy& operator=(const Policy& other);
virtual bool get_mls() const;
virtual void set_mls(bool val);
@@ -50,7 +50,7 @@ namespace policyrep
Module(const std::string& name, const std::string& version);
Module(const Module& other);
virtual ~Module();
- virtual void operator=(const Module& other);
+ virtual Module& operator=(const Module& other);
virtual const std::string& get_name() const;
virtual void set_name(const std::string& name);
@@ -77,7 +77,7 @@ namespace policyrep
InitialSid(const std::string& name);
InitialSid(const InitialSid& other);
virtual ~InitialSid();
- virtual void operator=(const InitialSid& other);
+ virtual InitialSid& operator=(const InitialSid& other);
protected:
virtual void do_output(std::ostream& o, const OutputFormatter& op) const;
--- policyrep.new.orig/libpolicyrep/include/policyrep/policy_base.hpp
+++ policyrep.new/libpolicyrep/include/policyrep/policy_base.hpp
@@ -82,7 +82,7 @@ namespace policyrep {
OutputFormatter();
OutputFormatter(const OutputFormatter& other);
~OutputFormatter();
- void operator=(const OutputFormatter& other);
+ OutputFormatter& operator=(const OutputFormatter& other);
OutputFormatter& operator()(const Node& n, bool end=false);
OutputFormatter& operator()(NodePtr n, bool end=false);
@@ -117,7 +117,7 @@ namespace policyrep {
Node();
Node(const Node& other);
virtual ~Node();
- virtual void operator=(const Node& other);
+ virtual Node& operator=(const Node& other);
virtual void set_parent(Parent* p);
virtual Parent* get_parent() const;
@@ -153,7 +153,7 @@ namespace policyrep {
explicit TreeIterator(Parent* n, enum Strategy strategy=POSTORDER);
TreeIterator(const TreeIterator& other);
virtual ~TreeIterator();
- void operator=(const TreeIterator& other);
+ TreeIterator& operator=(const TreeIterator& other);
bool get_visited() const;
private:
friend class boost::iterator_core_access;
@@ -177,7 +177,7 @@ namespace policyrep {
Parent();
Parent(const Parent& other);
virtual ~Parent();
- virtual void operator=(const Parent& other);
+ virtual Parent& operator=(const Parent& other);
typedef TreeIterator iterator;
virtual void append_child(NodePtr Node);
@@ -223,7 +223,7 @@ namespace policyrep {
PolicyBlock(PolicyBranchPtr true_, PolicyBranchPtr false_);
PolicyBlock(const PolicyBlock& other);
virtual ~PolicyBlock();
- virtual void operator=(const PolicyBlock& other);
+ virtual PolicyBlock& operator=(const PolicyBlock& other);
virtual void append_child(PolicyBranchPtr node);
@@ -250,7 +250,7 @@ namespace policyrep {
PolicyBranch();
PolicyBranch(const PolicyBranch& other);
virtual ~PolicyBranch();
- virtual void operator=(const PolicyBranch& other);
+ virtual PolicyBranch& operator=(const PolicyBranch& other);
virtual void set_isfalse(bool v);
virtual bool get_isfalse() const;
--- policyrep.new.orig/libpolicyrep/include/policyrep/rbac.hpp
+++ policyrep.new/libpolicyrep/include/policyrep/rbac.hpp
@@ -21,7 +21,7 @@ namespace policyrep
Role(const std::string& name);
Role(const Role& other);
virtual ~Role();
- virtual void operator=(const Role& other);
+ virtual Role& operator=(const Role& other);
template<class T>
Role(const std::string& name, T types_begin, T end)
--- policyrep.new.orig/libpolicyrep/include/policyrep/rule.hpp
+++ policyrep.new/libpolicyrep/include/policyrep/rule.hpp
@@ -21,7 +21,7 @@ namespace policyrep
AVRule(Type type=ALLOW);
AVRule(const AVRule& other);
virtual ~AVRule();
- virtual void operator=(const AVRule& other);
+ virtual AVRule& operator=(const AVRule& other);
virtual void set_type(Type type);
virtual Type get_type() const;
@@ -50,7 +50,7 @@ namespace policyrep
TypeRule(Type type=TRANSITION);
TypeRule(const TypeRule& other);
virtual ~TypeRule();
- virtual void operator=(const TypeRule& other);
+ virtual TypeRule& operator=(const TypeRule& other);
virtual void set_type(Type type);
virtual Type get_type() const;
--- policyrep.new.orig/libpolicyrep/include/policyrep/te_decl.hpp
+++ policyrep.new/libpolicyrep/include/policyrep/te_decl.hpp
@@ -21,7 +21,7 @@ namespace policyrep
Type(const std::string& name);
Type(const Type& other);
virtual ~Type();
- virtual void operator=(const Type& other);
+ virtual Type& operator=(const Type& other);
template<class T>
Type(const std::string& name, T attrs_begin, T end)
@@ -63,7 +63,7 @@ namespace policyrep
Attribute(const std::string& name);
Attribute(const Attribute& other);
virtual ~Attribute();
- virtual void operator=(const Attribute& other);
+ virtual Attribute& operator=(const Attribute& other);
protected:
virtual void do_output(std::ostream& o, const OutputFormatter& op) const;
@@ -83,7 +83,7 @@ namespace policyrep
TypeAttribute();
TypeAttribute(const TypeAttribute& other);
virtual ~TypeAttribute();
- virtual void operator=(const TypeAttribute& other);
+ virtual TypeAttribute& operator=(const TypeAttribute& other);
template<class T>
TypeAttribute(const std::string& name, T attrs_begin,
@@ -116,7 +116,7 @@ namespace policyrep
TypeAlias();
TypeAlias(const TypeAlias& other);
virtual ~TypeAlias();
- virtual void operator=(const TypeAlias& other);
+ virtual TypeAlias& operator=(const TypeAlias& other);
template<class T>
TypeAlias(const std::string& name, T attrs_begin,
--- policyrep.new.orig/libpolicyrep/include/policyrep/user.hpp
+++ policyrep.new/libpolicyrep/include/policyrep/user.hpp
@@ -22,7 +22,7 @@ namespace policyrep
User(const std::string& name);
User(const User& other);
virtual ~User();
- virtual void operator=(const User& other);
+ virtual User& operator=(const User& other);
template<class T>
User(const std::string& name, T roles_begin, T end)
--- policyrep.new.orig/libpolicyrep/src/idset.cpp
+++ policyrep.new/libpolicyrep/src/idset.cpp
@@ -45,9 +45,10 @@ namespace policyrep
IdSet::~IdSet() { delete impl; }
- void IdSet::operator=(const IdSet& other)
+ IdSet& IdSet::operator=(const IdSet& other)
{
*impl = *other.impl;
+ return *this;
}
void IdSet::set_compl(bool val)
--- policyrep.new.orig/libpolicyrep/src/policy.cpp
+++ policyrep.new/libpolicyrep/src/policy.cpp
@@ -47,9 +47,11 @@ namespace policyrep
Policy::~Policy() { delete impl; }
- void Policy::operator=(const Policy& other)
+ Policy& Policy::operator=(const Policy& other)
{
- copy(other);
+ Parent::operator=(other);
+ *impl = *other.impl;
+ return *this;
}
bool Policy::get_mls() const
@@ -98,9 +100,11 @@ namespace policyrep
Module::~Module() { delete impl; }
- void Module::operator=(const Module& other)
+ Module& Module::operator=(const Module& other)
{
- copy(other);
+ Parent::operator=(other);
+ *impl = *other.impl;
+ return *this;
}
const std::string& Module::get_name() const
@@ -166,9 +170,11 @@ namespace policyrep
InitialSid::~InitialSid() { delete impl; }
- void InitialSid::operator=(const InitialSid& other)
+ InitialSid& InitialSid::operator=(const InitialSid& other)
{
- copy(other);
+ Symbol::operator=(other);
+ *impl = *other.impl;
+ return *this;
}
void InitialSid::do_output(std::ostream& o, const OutputFormatter& op) const
--- policyrep.new.orig/libpolicyrep/src/conditional.cpp
+++ policyrep.new/libpolicyrep/src/conditional.cpp
@@ -57,10 +57,11 @@ namespace policyrep
delete impl;
}
- void CondBool::operator=(const CondBool& other)
+ CondBool& CondBool::operator=(const CondBool& other)
{
Symbol::operator=(other);
- copy(other);
+ *impl = *other.impl;
+ return *this;
}
void CondBool::set_default_value(bool v)
@@ -125,9 +126,10 @@ namespace policyrep
delete impl;
}
- void CondOp::operator=(const CondOp& other)
+ CondOp& CondOp::operator=(const CondOp& other)
{
*impl = *other.impl;
+ return *this;
}
void CondOp::set_bool(const std::string& b)
@@ -212,9 +214,11 @@ namespace policyrep
delete impl;
}
- void CondBlock::operator=(const CondBlock& other)
+ CondBlock& CondBlock::operator=(const CondBlock& other)
{
- copy(other);
+ PolicyBlock::operator=(other);
+ *impl = *other.impl;
+ return *this;
}
void CondBlock::copy(const CondBlock& other)
@@ -248,9 +252,11 @@ namespace policyrep
delete impl;
}
- void CondBranch::operator=(const CondBranch& other)
+ CondBranch& CondBranch::operator=(const CondBranch& other)
{
- copy(other);
+ PolicyBranch::operator=(other);
+ *impl = *other.impl;
+ return *this;
}
CondExpr& CondBranch::expr()
--- policyrep.new.orig/libpolicyrep/src/mls.cpp
+++ policyrep.new/libpolicyrep/src/mls.cpp
@@ -104,9 +104,10 @@ namespace policyrep
Dominance::~Dominance() { delete impl; }
- void Dominance::operator=(const Dominance& other)
+ Dominance& Dominance::operator=(const Dominance& other)
{
*impl = *other.impl;
+ return *this;
}
StringVector& Dominance::ordering()
@@ -159,9 +160,10 @@ namespace policyrep
Category::~Category() { delete impl; }
- void Category::operator=(const Category& other)
+ Category& Category::operator=(const Category& other)
{
*impl = *other.impl;
+ return *this;
}
StringSet& Category::aliases()
@@ -218,9 +220,10 @@ namespace policyrep
delete impl;
}
- void Level::operator=(const Level& other)
+ Level& Level::operator=(const Level& other)
{
*impl = *other.impl;
+ return *this;
}
StringSet& Level::categories()
@@ -285,9 +288,10 @@ namespace policyrep
delete impl;
}
- void Range::operator=(const Range& other)
+ Range& Range::operator=(const Range& other)
{
*impl = *(other.impl);
+ return *this;
}
const LevelPtr& Range::get_low(void) const
--- policyrep.new.orig/libpolicyrep/src/object_class.cpp
+++ policyrep.new/libpolicyrep/src/object_class.cpp
@@ -47,9 +47,10 @@ namespace policyrep {
delete impl;
}
- void CommonPerms::operator=(const CommonPerms& other)
+ CommonPerms& CommonPerms::operator=(const CommonPerms& other)
{
- copy(other);
+ *impl = *other.impl;
+ return *this;
}
StringSet& CommonPerms::perms()
@@ -108,9 +109,10 @@ namespace policyrep {
delete impl;
}
- void ObjectClass::operator=(const ObjectClass& other)
+ ObjectClass& ObjectClass::operator=(const ObjectClass& other)
{
- copy(other);
+ *impl = *other.impl;
+ return *this;
}
StringSet& ObjectClass::perms()
--- policyrep.new.orig/libpolicyrep/src/optional.cpp
+++ policyrep.new/libpolicyrep/src/optional.cpp
@@ -52,9 +52,11 @@ namespace policyrep
delete impl;
}
- void OptionalBlock::operator=(const OptionalBlock& other)
+ OptionalBlock& OptionalBlock::operator=(const OptionalBlock& other)
{
- copy(other);
+ PolicyBlock::operator=(other);
+ *impl = *other.impl;
+ return *this;
}
void OptionalBlock::copy(const OptionalBlock& other)
@@ -81,9 +83,11 @@ namespace policyrep
delete impl;
}
- void OptionalBranch::operator=(const OptionalBranch& other)
+ OptionalBranch& OptionalBranch::operator=(const OptionalBranch& other)
{
- copy(other);
+ PolicyBranch::operator=(other);
+ *impl = *other.impl;
+ return *this;
}
void OptionalBranch::do_output(std::ostream& o, const OutputFormatter& op) const
--- policyrep.new.orig/libpolicyrep/src/parse.cpp
+++ policyrep.new/libpolicyrep/src/parse.cpp
@@ -46,9 +46,10 @@ namespace policyrep {
Parser::~Parser() { delete impl; }
- void Parser::operator=(const Parser& other)
+ Parser& Parser::operator=(const Parser& other)
{
*impl = *other.impl;
+ return *this;
}
ModulePtr Parser::parse(const std::string& f)
--- policyrep.new.orig/libpolicyrep/src/policy_base.cpp
+++ policyrep.new/libpolicyrep/src/policy_base.cpp
@@ -99,9 +99,10 @@ namespace policyrep
delete impl;
}
- void OutputFormatter::operator=(const OutputFormatter& other)
+ OutputFormatter& OutputFormatter::operator=(const OutputFormatter& other)
{
*impl = *other.impl;
+ return *this;
}
OutputFormatter& OutputFormatter::operator()(const Node& n, bool end)
@@ -207,10 +208,11 @@ namespace policyrep
delete node_impl;
}
- void Node::operator=(const Node& other)
+ Node& Node::operator=(const Node& other)
{
std::cout << "node" << std::endl;
- copy(other);
+ *node_impl = *other.node_impl;
+ return *this;
}
void Node::set_parent(Parent* parent)
@@ -342,9 +344,10 @@ namespace policyrep
delete impl;
}
- void TreeIterator::operator=(const TreeIterator& other)
+ TreeIterator& TreeIterator::operator=(const TreeIterator& other)
{
*impl = *other.impl;
+ return *this;
}
bool TreeIterator::get_visited() const
@@ -448,9 +451,11 @@ namespace policyrep
delete parent_impl;
}
- void Parent::operator=(const Parent& other)
+ Parent& Parent::operator=(const Parent& other)
{
- copy(other);
+ Node::operator=(other);
+ *parent_impl = *other.parent_impl;
+ return *this;
}
void Parent::make_child(NodePtr node)
@@ -540,9 +545,11 @@ namespace policyrep
delete block_impl;
}
- void PolicyBlock::operator=(const PolicyBlock& other)
+ PolicyBlock& PolicyBlock::operator=(const PolicyBlock& other)
{
- copy(other);
+ Parent::operator=(other);
+ *block_impl = *other.block_impl;
+ return *this;
}
void PolicyBlock::append_child(PolicyBranchPtr node)
@@ -652,9 +659,11 @@ namespace policyrep
delete branch_impl;
}
- void PolicyBranch::operator=(const PolicyBranch& other)
+ PolicyBranch& PolicyBranch::operator=(const PolicyBranch& other)
{
- copy(other);
+ Parent::operator=(other);
+ *branch_impl = *other.branch_impl;
+ return *this;
}
void PolicyBranch::set_isfalse(bool v)
--- policyrep.new.orig/libpolicyrep/src/rbac.cpp
+++ policyrep.new/libpolicyrep/src/rbac.cpp
@@ -58,9 +58,11 @@ namespace policyrep
Role::~Role() { delete impl; }
- void Role::operator=(const Role& other)
+ Role& Role::operator=(const Role& other)
{
+ Symbol::operator=(other);
*impl = *other.impl;
+ return *this;
}
StringSet& Role::types()
--- policyrep.new.orig/libpolicyrep/src/rule.cpp
+++ policyrep.new/libpolicyrep/src/rule.cpp
@@ -59,9 +59,11 @@ namespace policyrep
delete impl;
}
- void AVRule::operator=(const AVRule& other)
+ AVRule& AVRule::operator=(const AVRule& other)
{
- copy(other);
+ Node::operator=(other);
+ *impl = *other.impl;
+ return *this;
}
void AVRule::set_type(AVRule::Type type)
@@ -170,9 +172,11 @@ namespace policyrep
delete impl;
}
- void TypeRule::operator=(const TypeRule& other)
+ TypeRule& TypeRule::operator=(const TypeRule& other)
{
- copy(other);
+ Node::operator=(other);
+ *impl = *other.impl;
+ return *this;
}
void TypeRule::set_type(TypeRule::Type type)
--- policyrep.new.orig/libpolicyrep/src/te_decl.cpp
+++ policyrep.new/libpolicyrep/src/te_decl.cpp
@@ -61,9 +61,11 @@ namespace policyrep
Type::~Type() { delete impl; }
- void Type::operator=(const Type& other)
+ Type& Type::operator=(const Type& other)
{
- copy(other);
+ Symbol::operator=(other);
+ *impl = *other.impl;
+ return *this;
}
StringSet& Type::aliases()
@@ -163,9 +165,10 @@ namespace policyrep
TypeAttribute::~TypeAttribute() { delete impl; }
- void TypeAttribute::operator=(const TypeAttribute& other)
+ TypeAttribute& TypeAttribute::operator=(const TypeAttribute& other)
{
- copy(other);
+ *impl = *other.impl;
+ return *this;
}
const std::string& TypeAttribute::get_name() const
@@ -224,9 +227,11 @@ namespace policyrep
delete impl;
}
- void TypeAlias::operator=(const TypeAlias& other)
+ TypeAlias& TypeAlias::operator=(const TypeAlias& other)
{
- copy(other);
+ Node::operator=(other);
+ *impl = *other.impl;
+ return *this;
}
const std::string& TypeAlias::get_name() const
--- policyrep.new.orig/libpolicyrep/src/user.cpp
+++ policyrep.new/libpolicyrep/src/user.cpp
@@ -63,9 +63,10 @@ namespace policyrep
delete impl;
}
- void User::operator=(const User& other)
+ User& User::operator=(const User& other)
{
*impl = *other.impl;
+ return *this;
}
StringSet& User::roles()
--
--
This message was distributed to subscribers of the selinux mailing list.
If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with
the words "unsubscribe selinux" without quotes as the message.
next prev parent reply other threads:[~2008-01-22 19:43 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-01-22 19:43 [POLICYREP] [patch 0/7] various cleanups and base symbol class Joshua Brindle
2008-01-22 19:43 ` [POLICYREP] [patch 1/7] remove makefile targets that dont build Joshua Brindle
2008-01-22 19:43 ` [POLICYREP] [patch 2/7] remove policy_package Joshua Brindle
2008-01-22 19:43 ` [POLICYREP] [patch 3/7] remove duplicated optional.hpp data Joshua Brindle
2008-01-22 19:43 ` [POLICYREP] [patch 4/7] symbol base class Joshua Brindle
2008-01-22 19:43 ` Joshua Brindle [this message]
2008-01-22 19:43 ` [POLICYREP] [patch 6/7] add negset to idset Joshua Brindle
2008-01-22 19:43 ` [POLICYREP] [patch 7/7] remove unused copy/init functions Joshua Brindle
2008-01-22 21:29 ` Joshua Brindle
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20080121160228.354469219@manicmethod.com \
--to=method@manicmethod.com \
--cc=kmacmillan@mentalrootkit.com \
--cc=sds@tycho.nsa.gov \
--cc=selinux@tycho.nsa.gov \
--cc=tmiller@tresys.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.