aboutsummaryrefslogtreecommitdiff
path: root/odb/validator.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2015-06-16 08:19:25 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2015-06-16 08:19:25 +0200
commit521216e0a696fa698c88fc1e18958c82626873cc (patch)
treedd95f00470fc1f9bbc3d1ec2f0bf3c9314f8e166 /odb/validator.cxx
parente269daa6cd5e88bc7ada0e148b052aabd65044d8 (diff)
Implement support for nested members in inverse pragma
Diffstat (limited to 'odb/validator.cxx')
-rw-r--r--odb/validator.cxx17
1 files changed, 7 insertions, 10 deletions
diff --git a/odb/validator.cxx b/odb/validator.cxx
index 071da16..561d348 100644
--- a/odb/validator.cxx
+++ b/odb/validator.cxx
@@ -1192,8 +1192,8 @@ namespace
// Inverse pointer must be deleted before the direct side.
//
- if (semantics::data_member* im = inverse (m))
- check_strict (m, *im, "inverse object pointer", "direct pointer");
+ if (data_member_path* imp = inverse (m))
+ check_strict (m, *imp, "inverse object pointer", "direct pointer");
}
virtual void
@@ -1209,8 +1209,8 @@ namespace
// Inverse pointer must be deleted before the direct side.
//
- if (semantics::data_member* im = inverse (m, "value"))
- check_strict (m, *im, "inverse object pointer", "direct pointer");
+ if (data_member_path* imp = inverse (m, "value"))
+ check_strict (m, *imp, "inverse object pointer", "direct pointer");
}
}
@@ -1246,14 +1246,13 @@ namespace
void
check_strict (D& dep, P& pre, char const* dname, char const* pname)
{
- unsigned long long dv (deleted (dep));
- unsigned long long pv (deleted (pre));
+ location_t dl, pl;
+ unsigned long long dv (deleted (dep, &dl));
+ unsigned long long pv (deleted (pre, &pl));
if (pv == 0) // Prerequisite never deleted.
return;
- location_t pl (pre.template get<location_t> ("deleted-location"));
-
if (dv == 0) // Dependent never deleted.
{
location dl (dep.location ());
@@ -1265,8 +1264,6 @@ namespace
}
else if (pv > dv) // Prerequisite deleted before dependent.
{
- location_t dl (dep.template get<location_t> ("deleted-location"));
-
error (dl) << dname << " is deleted after " << pname << endl;
info (pl) << pname << " deletion version is specified here" << endl;