You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ac...@apache.org on 2016/11/25 21:01:40 UTC

[44/48] qpid-proton git commit: NO-JIRA: cpp: fix clang c++11 compile error in url::impl

NO-JIRA: cpp: fix clang c++11 compile error in url::impl

url::impl had explict dtor (delete[] raw C char array) but no explict copy ctor.
Replaced raw char* with vector<char> and removed the explicit dtor.


Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/8c306f29
Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/8c306f29
Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/8c306f29

Branch: refs/heads/go1
Commit: 8c306f2964a5f19898b258729393814646d3acb6
Parents: 6af49b8
Author: Alan Conway <ac...@redhat.com>
Authored: Wed Nov 23 11:24:11 2016 -0500
Committer: Alan Conway <ac...@redhat.com>
Committed: Wed Nov 23 11:24:11 2016 -0500

----------------------------------------------------------------------
 proton-c/bindings/cpp/src/url.cpp | 16 ++++++----------
 1 file changed, 6 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/8c306f29/proton-c/bindings/cpp/src/url.cpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/url.cpp b/proton-c/bindings/cpp/src/url.cpp
index 1aa01e1..867f605 100644
--- a/proton-c/bindings/cpp/src/url.cpp
+++ b/proton-c/bindings/cpp/src/url.cpp
@@ -29,6 +29,7 @@
 #include <cstring>
 #include <iomanip>
 #include <sstream>
+#include <vector>
 
 namespace {
 
@@ -156,20 +157,15 @@ struct url::impl {
     const char* host;
     const char* port;
     const char* path;
-    char* cstr;
+    std::vector<char> cstr;
     mutable std::string str;
 
     impl(const std::string& s) :
-      scheme(0), username(0), password(0), host(0), port(0), path(0),
-      cstr(new char[s.size()+1])
+        scheme(0), username(0), password(0), host(0), port(0), path(0),
+        cstr(s.size()+1, '\0')
     {
-        std::strncpy(cstr, s.c_str(), s.size());
-        cstr[s.size()] = 0;
-        parse_url(cstr, &scheme, &username, &password, &host, &port, &path);
-    }
-
-    ~impl() {
-        delete [] cstr;
+        std::copy(s.begin(), s.end(), cstr.begin());
+        parse_url(&cstr[0], &scheme, &username, &password, &host, &port, &path);
     }
 
     void defaults() {


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org