Commit f71937d6 authored by Adrian Negreanu's avatar Adrian Negreanu Committed by Adrian Negreanu

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: 's avatarAdrian Negreanu <adrian.m.negreanu@intel.com>
parent cebac4fa
...@@ -700,7 +700,11 @@ static void generateSqlite3ForMember(sqlite3*db,MemberDef *md,Definition *def) ...@@ -700,7 +700,11 @@ static void generateSqlite3ForMember(sqlite3*db,MemberDef *md,Definition *def)
if (md->getStartBodyLine()!=-1) if (md->getStartBodyLine()!=-1)
{ {
int id_bfile = insertFile(db,md->getBodyDef()->absFilePath()); 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,":id_ibfile",id_bfile);
bindIntParameter(i_s_memberdef,":bline",md->getStartBodyLine()); bindIntParameter(i_s_memberdef,":bline",md->getStartBodyLine());
...@@ -712,7 +716,9 @@ static void generateSqlite3ForMember(sqlite3*db,MemberDef *md,Definition *def) ...@@ -712,7 +716,9 @@ static void generateSqlite3ForMember(sqlite3*db,MemberDef *md,Definition *def)
} }
if (-1==step(db,i_s_memberdef)) if (-1==step(db,i_s_memberdef))
return; {
sqlite3_clear_bindings(i_s_memberdef);
}
/*int id_src =*/ sqlite3_last_insert_rowid(db); /*int id_src =*/ sqlite3_last_insert_rowid(db);
// + source references // + source references
...@@ -839,7 +845,7 @@ static void generateSqlite3ForClass(sqlite3 *db, ClassDef *cd) ...@@ -839,7 +845,7 @@ static void generateSqlite3ForClass(sqlite3 *db, ClassDef *cd)
} }
bindTextParameter(i_s_basecompoundref,":derived",cd->displayName()); bindTextParameter(i_s_basecompoundref,":derived",cd->displayName());
if (-1==step(db,i_s_basecompoundref)) if (-1==step(db,i_s_basecompoundref))
return; continue;
} }
} }
...@@ -856,7 +862,7 @@ static void generateSqlite3ForClass(sqlite3 *db, ClassDef *cd) ...@@ -856,7 +862,7 @@ static void generateSqlite3ForClass(sqlite3 *db, ClassDef *cd)
bindIntParameter(i_s_derivedcompoundref,":prot",bcd->prot); bindIntParameter(i_s_derivedcompoundref,":prot",bcd->prot);
bindIntParameter(i_s_derivedcompoundref,":virt",bcd->virt); bindIntParameter(i_s_derivedcompoundref,":virt",bcd->virt);
if (-1==step(db,i_s_derivedcompoundref)) if (-1==step(db,i_s_derivedcompoundref))
return; continue;
} }
} }
...@@ -986,7 +992,7 @@ static void generateSqlite3ForFile(sqlite3 *db, FileDef *fd) ...@@ -986,7 +992,7 @@ static void generateSqlite3ForFile(sqlite3 *db, FileDef *fd)
bindIntParameter(i_s_includes,":id_src",id_file); bindIntParameter(i_s_includes,":id_src",id_file);
bindTextParameter(i_s_includes,":dst",ii->includeName.data(),FALSE); bindTextParameter(i_s_includes,":dst",ii->includeName.data(),FALSE);
if (-1==step(db,i_s_includes)) if (-1==step(db,i_s_includes))
return; continue;
} }
} }
...@@ -1001,7 +1007,8 @@ static void generateSqlite3ForFile(sqlite3 *db, FileDef *fd) ...@@ -1001,7 +1007,8 @@ static void generateSqlite3ForFile(sqlite3 *db, FileDef *fd)
bindIntParameter(i_s_includes,":id_src",id_file); bindIntParameter(i_s_includes,":id_src",id_file);
bindTextParameter(i_s_includes,":dst",fd->absFilePath().data(),FALSE); bindTextParameter(i_s_includes,":dst",fd->absFilePath().data(),FALSE);
if (-1==step(db,i_s_includes)) if (-1==step(db,i_s_includes))
return; continue;
} }
} }
...@@ -1010,6 +1017,7 @@ static void generateSqlite3ForFile(sqlite3 *db, FileDef *fd) ...@@ -1010,6 +1017,7 @@ static void generateSqlite3ForFile(sqlite3 *db, FileDef *fd)
{ {
writeInnerClasses(db,fd->getClassSDict()); writeInnerClasses(db,fd->getClassSDict());
} }
// + contained namespace definitions // + contained namespace definitions
if (fd->getNamespaceSDict()) if (fd->getNamespaceSDict())
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment