aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2010-08-16 11:46:19 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2010-08-16 11:46:19 +0200
commit2c62d79bc914a6024afb842b56929df46660b50a (patch)
treece2ab6d5f7a72e2faebbdf36c9a9c6e3711ad675
parent5e17d609ae59dc07514e2af945db05be05db968c (diff)
Add pointer guard for naked pointer
-rw-r--r--odb/mysql/source.cxx2
-rw-r--r--odb/tracer/source.cxx2
2 files changed, 4 insertions, 0 deletions
diff --git a/odb/mysql/source.cxx b/odb/mysql/source.cxx
index a9f8a99..4854a68 100644
--- a/odb/mysql/source.cxx
+++ b/odb/mysql/source.cxx
@@ -911,8 +911,10 @@ namespace mysql
<< "{"
<< "pointer_type p (access::object_factory< " << type <<
" >::create ());"
+ << "pointer_traits< pointer_type >::guard g (p);"
<< "init (pointer_traits< pointer_type >::get_ref (p), " <<
"sts.image ());"
+ << "g.release ();"
<< "return p;"
<< "}"
<< "return pointer_type ();"
diff --git a/odb/tracer/source.cxx b/odb/tracer/source.cxx
index 696d707..77dfa7a 100644
--- a/odb/tracer/source.cxx
+++ b/odb/tracer/source.cxx
@@ -95,7 +95,9 @@ namespace tracer
<< endl
<< "pointer_type r (access::object_factory< " << type <<
" >::create ());"
+ << "pointer_traits< pointer_type >::guard g (r);"
<< "r->" << id.name () << " = id;"
+ << "g.release ();"
<< "return r;"
<< "}";