diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2015-08-21 18:56:38 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2015-08-21 18:56:38 +0200 |
commit | 15995637f9cab6a4d92a2383e2afdba2b48d5f7b (patch) | |
tree | 80fc2b252dff7f84e5361e74ba29fd998ad28bd4 | |
parent | e43343d17e023e9afaeeba615ed5502c02741f8c (diff) |
Make sure we don't match namespace ::foo as prefix of ::foobar
-rw-r--r-- | odb/parser.cxx | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/odb/parser.cxx b/odb/parser.cxx index ff9f6d0..275da33 100644 --- a/odb/parser.cxx +++ b/odb/parser.cxx @@ -951,7 +951,11 @@ emit () for (pfx = scope_->fq_name (); !pfx.empty (); pfx = scope_->fq_name ()) { - if (ns.compare (0, pfx.size (), pfx) == 0) + size_t n (pfx.size ()); + + // Make sure we handle cases like ns="::foobar", pfx="::foo". + // + if (ns.compare (0, n, pfx) == 0 && (ns.size () == n || ns[n - 1] == ':')) break; if (trace) |