diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2012-04-27 13:57:34 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2012-04-27 13:57:34 +0200 |
commit | 52793dc8860e38f725dc0ca8300c4e2ca9d4ceb9 (patch) | |
tree | 88d868922e1903cc56236516c8ab44b4bc222a2d /odb/relational/source.hxx | |
parent | f8b3ee6d42f5112c4e66a07cc7fdba43ce66aacd (diff) |
Don't generate grow code for databases that don't need it
Diffstat (limited to 'odb/relational/source.hxx')
-rw-r--r-- | odb/relational/source.hxx | 41 |
1 files changed, 28 insertions, 13 deletions
diff --git a/odb/relational/source.hxx b/odb/relational/source.hxx index 2f2a61e..de0e6bd 100644 --- a/odb/relational/source.hxx +++ b/odb/relational/source.hxx @@ -1347,9 +1347,17 @@ namespace relational os << "if (sk != statement_update)" << "{"; - os << "if (" << (obj ? "object" : "composite_value") << "_traits< " << - class_fq_name (c) << " >::init (i, o, sk))" << endl - << "grew = true;"; + if (generate_grow) + os << "if ("; + + os << (obj ? "object" : "composite_value") << "_traits< " << + class_fq_name (c) << " >::init (i, o, sk)"; + + if (generate_grow) + os << ")" << endl + << "grew = true"; + + os << ";"; if (check) os << "}"; @@ -2270,10 +2278,12 @@ namespace relational << endl << "statement_kind sk (statement_insert);" << "ODB_POTENTIALLY_UNUSED (sk);" - << endl - << "bool grew (false);" << endl; + if (generate_grow) + os << "bool grew (false);" + << endl; + switch (ck) { case ck_ordered: @@ -2316,9 +2326,11 @@ namespace relational im->traverse (m); } - os << "if (grew)" << endl - << "i.version++;" - << "}"; + if (generate_grow) + os << "if (grew)" << endl + << "i.version++;"; + + os << "}"; } // init (data) @@ -3297,7 +3309,7 @@ namespace relational // init (image, value) // - os << "bool " << traits << "::" << endl + os << (generate_grow ? "bool " : "void ") << traits << "::" << endl << "init (image_type& i, const value_type& o, " << db << "::statement_kind sk)" << "{" @@ -3312,14 +3324,17 @@ namespace relational os << "assert (sk != statement_update);" << endl; - os << "bool grew (false);" - << endl; + if (generate_grow) + os << "bool grew (false);" + << endl; inherits (c, init_image_base_inherits_); names (c, init_image_member_names_); - os << "return grew;" - << "}"; + if (generate_grow) + os << "return grew;"; + + os << "}"; // init (value, image) // |