From de50064af14eb31f027ea7fa59501c9b3754eafd Mon Sep 17 00:00:00 2001
From: Kevin Smith <git@kismith.co.uk>
Date: Fri, 23 Sep 2011 19:04:46 +0100
Subject: Cleanup of previous patch


diff --git a/Swiften/Elements/MUCAdminPayload.h b/Swiften/Elements/MUCAdminPayload.h
index 7b3da20..dc09a24 100644
--- a/Swiften/Elements/MUCAdminPayload.h
+++ b/Swiften/Elements/MUCAdminPayload.h
@@ -25,7 +25,7 @@ namespace Swift {
 			MUCAdminPayload() {
 			}
 
-			void addItem(MUCItem item) {items_.push_back(item);}
+			void addItem(const MUCItem& item) {items_.push_back(item);}
 
 			const std::vector<MUCItem>& getItems() const {return items_;}
 
diff --git a/Swiften/Elements/MUCUserPayload.h b/Swiften/Elements/MUCUserPayload.h
index de9f1e5..158258b 100644
--- a/Swiften/Elements/MUCUserPayload.h
+++ b/Swiften/Elements/MUCUserPayload.h
@@ -41,7 +41,7 @@ namespace Swift {
 			MUCUserPayload() {
 			}
 
-			void addItem(MUCItem item) {items_.push_back(item);}
+			void addItem(const MUCItem& item) {items_.push_back(item);}
 		
 			void addStatusCode(StatusCode code) {statusCodes_.push_back(code);}
 
diff --git a/Swiften/Parser/GenericPayloadTreeParser.h b/Swiften/Parser/GenericPayloadTreeParser.h
index 0030af7..a1946ee 100644
--- a/Swiften/Parser/GenericPayloadTreeParser.h
+++ b/Swiften/Parser/GenericPayloadTreeParser.h
@@ -27,7 +27,6 @@ namespace Swift {
 	class GenericPayloadTreeParser : public GenericPayloadParser<PAYLOAD_TYPE> {
 		public:
 			virtual void handleStartElement(const std::string& element, const std::string& xmlns, const AttributeMap& attributes) {
-				//std::cerr << element << ", " << xmlns << ", " << attributes.getEntries().size();
 				if (!root_) {
 					root_ = boost::make_shared<ParserElement>(element, xmlns, attributes);
 					elementStack_.push_back(root_);
diff --git a/Swiften/Parser/Tree/ParserElement.cpp b/Swiften/Parser/Tree/ParserElement.cpp
index c851b41..0baf709 100644
--- a/Swiften/Parser/Tree/ParserElement.cpp
+++ b/Swiften/Parser/Tree/ParserElement.cpp
@@ -34,18 +34,6 @@ void ParserElement::appendCharacterData(const std::string& data) {
 	text_ += data;
 }
 
-std::string ParserElement::getText() {
-	return text_;
-}
-
-std::string ParserElement::getName() {
-	return name_;
-}
-
-std::string ParserElement::getNamespace() {
-	return xmlns_;
-}
-
 struct DoesntMatch {
 	public:
 		DoesntMatch(const std::string& tagName, const std::string& ns) : tagName(tagName), ns(ns) {}
@@ -56,16 +44,15 @@ struct DoesntMatch {
 };
 
 
-std::vector<ParserElement::ref> ParserElement::getChildren(const std::string& name, const std::string& xmlns) {
+std::vector<ParserElement::ref> ParserElement::getChildren(const std::string& name, const std::string& xmlns) const {
 	std::vector<ParserElement::ref> result;
 	std::remove_copy_if(children_.begin(), children_.end(), std::back_inserter(result), DoesntMatch(name, xmlns));
 	return result;
 }
 
-ParserElement::ref ParserElement::getChild(const std::string& name, const std::string& xmlns) {
+ParserElement::ref ParserElement::getChild(const std::string& name, const std::string& xmlns) const {
 	std::vector<ParserElement::ref> results = getChildren(name, xmlns);
-	boost::shared_ptr<NullParserElement> nullParser = boost::make_shared<NullParserElement>();
-	ParserElement::ref result = results.empty() ? boost::dynamic_pointer_cast<ParserElement>(nullParser) : results[0];
+	ParserElement::ref result = results.empty() ? boost::make_shared<NullParserElement>() : results[0];
 	return result;
 }
 
diff --git a/Swiften/Parser/Tree/ParserElement.h b/Swiften/Parser/Tree/ParserElement.h
index ddf67fa..7229c5b 100644
--- a/Swiften/Parser/Tree/ParserElement.h
+++ b/Swiften/Parser/Tree/ParserElement.h
@@ -23,11 +23,11 @@ class ParserElement {
 		virtual operator bool();
 		ParserElement::ref addChild(const std::string& name, const std::string& xmlns, const AttributeMap& attributes);
 		void appendCharacterData(const std::string& data);
-		std::string getText();
-		std::string getName();
-		std::string getNamespace();
-		std::vector<ParserElement::ref> getChildren(const std::string& name, const std::string& xmlns);
-		ParserElement::ref getChild(const std::string& name, const std::string& xmlns);
+		const std::string& getText() const {return text_;};
+		const std::string& getName() const {return name_;};
+		const std::string& getNamespace() const {return xmlns_;};
+		std::vector<ParserElement::ref> getChildren(const std::string& name, const std::string& xmlns) const;
+		ParserElement::ref getChild(const std::string& name, const std::string& xmlns) const;
 		const AttributeMap& getAttributes() const {return attributes_;}
 	private:
 		std::vector<ParserElement::ref> children_;
-- 
cgit v0.10.2-6-g49f6