summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAdrian Negreanu <groleo@gmail.com>2013-08-04 20:33:31 (GMT)
committerAdrian Negreanu <adrian.m.negreanu@intel.com>2013-08-17 15:22:10 (GMT)
commitf71937d6a3523ad033af8487bbca408d64063a25 (patch)
treeb8274148f3b8c8ff9a7f09178960e66397e3f67c /src
parentcebac4fab4fb19bf735a94546acf58150ee245ea (diff)
downloadDoxygen-f71937d6a3523ad033af8487bbca408d64063a25.zip
Doxygen-f71937d6a3523ad033af8487bbca408d64063a25.tar.gz
Doxygen-f71937d6a3523ad033af8487bbca408d64063a25.tar.bz2
sqlite3: be more careful with return
return-ing on a "step" failure, drops any info that could be extracted further on. instead, call sqlite3_clear_bindings() statements fail and carry on Signed-off-by: Adrian Negreanu <adrian.m.negreanu@intel.com>
Diffstat (limited to 'src')
-rw-r--r--src/sqlite3gen.cpp20
1 files changed, 14 insertions, 6 deletions
diff --git a/src/sqlite3gen.cpp b/src/sqlite3gen.cpp
index c34eae8..34210bc 100644
--- a/src/sqlite3gen.cpp
+++ b/src/sqlite3gen.cpp
@@ -700,7 +700,11 @@ static void generateSqlite3ForMember(sqlite3*db,MemberDef *md,Definition *def)
if (md->getStartBodyLine()!=-1)
{
int id_bfile = insertFile(db,md->getBodyDef()->absFilePath());
- if (id_bfile == -1) return;
+ if (id_bfile == -1)
+ {
+ sqlite3_clear_bindings(i_s_memberdef);
+ return;
+ }
bindIntParameter(i_s_memberdef,":id_ibfile",id_bfile);
bindIntParameter(i_s_memberdef,":bline",md->getStartBodyLine());
@@ -712,7 +716,9 @@ static void generateSqlite3ForMember(sqlite3*db,MemberDef *md,Definition *def)
}
if (-1==step(db,i_s_memberdef))
- return;
+ {
+ sqlite3_clear_bindings(i_s_memberdef);
+ }
/*int id_src =*/ sqlite3_last_insert_rowid(db);
// + source references
@@ -839,7 +845,7 @@ static void generateSqlite3ForClass(sqlite3 *db, ClassDef *cd)
}
bindTextParameter(i_s_basecompoundref,":derived",cd->displayName());
if (-1==step(db,i_s_basecompoundref))
- return;
+ continue;
}
}
@@ -856,7 +862,7 @@ static void generateSqlite3ForClass(sqlite3 *db, ClassDef *cd)
bindIntParameter(i_s_derivedcompoundref,":prot",bcd->prot);
bindIntParameter(i_s_derivedcompoundref,":virt",bcd->virt);
if (-1==step(db,i_s_derivedcompoundref))
- return;
+ continue;
}
}
@@ -986,7 +992,7 @@ static void generateSqlite3ForFile(sqlite3 *db, FileDef *fd)
bindIntParameter(i_s_includes,":id_src",id_file);
bindTextParameter(i_s_includes,":dst",ii->includeName.data(),FALSE);
if (-1==step(db,i_s_includes))
- return;
+ continue;
}
}
@@ -1001,7 +1007,8 @@ static void generateSqlite3ForFile(sqlite3 *db, FileDef *fd)
bindIntParameter(i_s_includes,":id_src",id_file);
bindTextParameter(i_s_includes,":dst",fd->absFilePath().data(),FALSE);
if (-1==step(db,i_s_includes))
- return;
+ continue;
+
}
}
@@ -1010,6 +1017,7 @@ static void generateSqlite3ForFile(sqlite3 *db, FileDef *fd)
{
writeInnerClasses(db,fd->getClassSDict());
}
+
// + contained namespace definitions
if (fd->getNamespaceSDict())
{