summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Conway <aconway@apache.org>2014-02-06 21:36:03 +0000
committerAlan Conway <aconway@apache.org>2014-02-06 21:36:03 +0000
commitff10451274634cdd25765ba68cc4dd975a2b6015 (patch)
tree698113c5285f845ef2c8391fcae595b1ed72fb03
parentc53117656a1ee4e1e7e5419a591f782f7ddfba7f (diff)
downloadqpid-python-ff10451274634cdd25765ba68cc4dd975a2b6015.tar.gz
NO-JIRA: Fix windows build problem introduced by r1565431 in log/Statement.cpp commit.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1565448 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--qpid/cpp/src/qpid/log/Statement.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/qpid/cpp/src/qpid/log/Statement.cpp b/qpid/cpp/src/qpid/log/Statement.cpp
index d70dbc501a..86b069fd91 100644
--- a/qpid/cpp/src/qpid/log/Statement.cpp
+++ b/qpid/cpp/src/qpid/log/Statement.cpp
@@ -153,17 +153,21 @@ Statement::Initializer::Initializer(Statement& s) : statement(s) {
// "qpid::name::space::Function".
if (s.function) {
const char* end = s.function + strlen(s.function);
- const char* fEnd = std::find(s.function, end, '(');
+ const char* fEnd = std::find(s.function, end, '(');
typedef std::reverse_iterator<const char*> Reverse;
const char* fBegin = find(Reverse(fEnd), Reverse(s.function), ' ').base();
- s.function = ::strndup(fBegin, fEnd-fBegin);
+ size_t n = fEnd - fBegin;
+ char* name = new char[n+1];
+ std::copy(fBegin, fEnd, name);
+ name[n] = '\0';
+ s.function = name;
}
Statement::categorize(s);
Logger::instance().add(s);
}
Statement::Initializer::~Initializer() {
- ::free(const_cast<char*>(statement.function));
+ delete[] const_cast<char*>(statement.function);
statement.function = 0;
}