From ff10451274634cdd25765ba68cc4dd975a2b6015 Mon Sep 17 00:00:00 2001 From: Alan Conway Date: Thu, 6 Feb 2014 21:36:03 +0000 Subject: 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 --- qpid/cpp/src/qpid/log/Statement.cpp | 10 +++++++--- 1 file 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 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(statement.function)); + delete[] const_cast(statement.function); statement.function = 0; } -- cgit v1.2.1