summaryrefslogtreecommitdiffstats
path: root/src/util/share.cpp
diff options
context:
space:
mode:
authorJan Lingscheid <jan.linscheid@auticon.de>2017-10-18 14:03:34 +0000
committerJan Lingscheid <jan.linscheid@auticon.de>2017-10-18 14:03:34 +0000
commit41b862f1c4eaea48bdd0d546e2bb31907f15857b (patch)
treee667c91439f0f04aa1f2cec1d3eafddf80bc4ecc /src/util/share.cpp
parentReplace boost::shared_ptr (diff)
downloadinkscape-41b862f1c4eaea48bdd0d546e2bb31907f15857b.tar.gz
inkscape-41b862f1c4eaea48bdd0d546e2bb31907f15857b.zip
Refactor Util::ptr_shared
Util::ptr_shared<T> was only used in its <char> specialization, so it is now refactored into a non-template class. Using it with arbitary classes was dangerous anyway.
Diffstat (limited to 'src/util/share.cpp')
-rw-r--r--src/util/share.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/util/share.cpp b/src/util/share.cpp
index 3cb289b10..d5d93fc75 100644
--- a/src/util/share.cpp
+++ b/src/util/share.cpp
@@ -1,5 +1,6 @@
/*
- * Inkscape::Util::ptr_shared<T> - like T const *, but stronger
+ * Inkscape::Util::ptr_shared<T> - like T const *, but stronger.
+ * Used to hold c-style strings for objects that are managed by the gc.
*
* Authors:
* MenTaLguY <mental@rydia.net>
@@ -15,13 +16,13 @@
namespace Inkscape {
namespace Util {
-ptr_shared<char> share_string(char const *string) {
- g_return_val_if_fail(string != NULL, share_unsafe<char>(NULL));
+ptr_shared share_string(char const *string) {
+ g_return_val_if_fail(string != NULL, share_unsafe(NULL));
return share_string(string, std::strlen(string));
}
-ptr_shared<char> share_string(char const *string, std::size_t length) {
- g_return_val_if_fail(string != NULL, share_unsafe<char>(NULL));
+ptr_shared share_string(char const *string, std::size_t length) {
+ g_return_val_if_fail(string != NULL, share_unsafe(NULL));
char *new_string=new (GC::ATOMIC) char[length+1];
std::memcpy(new_string, string, length);
new_string[length] = 0;