summaryrefslogtreecommitdiff
path: root/libs/pbd
diff options
context:
space:
mode:
authorTim Mayberry <mojofunk@gmail.com>2015-08-14 19:56:53 +1000
committerTim Mayberry <mojofunk@gmail.com>2017-04-19 07:49:58 +1000
commit454b2d4e6997aa0273d1149403a7c3e952ba2b2c (patch)
tree3d47b38acbe90134bbd76b943ee7c9ed22f2d2ba /libs/pbd
parente31f242836456e98e428595c77c89cf953aa2c41 (diff)
Use PBD string conversion functions in PBD::ID instead of snprintf
Keep ID::print in place for now and replace usage in subsequent commit to minimize changes
Diffstat (limited to 'libs/pbd')
-rw-r--r--libs/pbd/id.cc21
-rw-r--r--libs/pbd/pbd/id.h5
2 files changed, 13 insertions, 13 deletions
diff --git a/libs/pbd/id.cc b/libs/pbd/id.cc
index 9a610c7418..6898da2d12 100644
--- a/libs/pbd/id.cc
+++ b/libs/pbd/id.cc
@@ -26,6 +26,8 @@
#include <inttypes.h>
#include "pbd/id.h"
+#include "pbd/string_convert.h"
+
#include <string>
using namespace std;
@@ -63,10 +65,10 @@ ID::reset ()
_id = _counter++;
}
-int
+bool
ID::string_assign (string str)
{
- return sscanf (str.c_str(), "%" PRIu64, &_id) != 0;
+ return string_to_uint64 (str, _id);
}
void
@@ -75,17 +77,16 @@ ID::print (char* buf, uint32_t bufsize) const
snprintf (buf, bufsize, "%" PRIu64, _id);
}
-string ID::to_s() const
+std::string
+ID::to_s () const
{
- char buf[32]; // see print()
- print(buf, sizeof (buf));
- return string(buf);
+ return to_string (_id);
}
bool
ID::operator== (const string& str) const
{
- return to_s() == str;
+ return to_string (_id) == str;
}
ID&
@@ -105,11 +106,9 @@ ID::operator= (const ID& other)
}
ostream&
-operator<< (ostream& ostr, const ID& _id)
+operator<< (ostream& ostr, const ID& id)
{
- char buf[32];
- _id.print (buf, sizeof (buf));
- ostr << buf;
+ ostr << id.to_s();
return ostr;
}
diff --git a/libs/pbd/pbd/id.h b/libs/pbd/pbd/id.h
index 5316e7c20e..ca62b10dc2 100644
--- a/libs/pbd/pbd/id.h
+++ b/libs/pbd/pbd/id.h
@@ -56,7 +56,8 @@ class LIBPBD_API ID {
}
void print (char* buf, uint32_t bufsize) const;
- std::string to_s() const;
+
+ std::string to_s () const;
static uint64_t counter() { return _counter; }
static void init_counter (uint64_t val) { _counter = val; }
@@ -64,7 +65,7 @@ class LIBPBD_API ID {
private:
uint64_t _id;
- int string_assign (std::string);
+ bool string_assign (std::string);
static Glib::Threads::Mutex* counter_lock;
static uint64_t _counter;