From 1a708967ba0c4a5604c1ac7d8f3c8112ec3e7044 Mon Sep 17 00:00:00 2001 From: Adrian Negreanu Date: Tue, 14 Jan 2014 22:09:04 +0200 Subject: sqlite3: clear bindings on errors and more care with return * call sqlite3_clear_bindings when step fails * more miss-placed returns Signed-off-by: Adrian Negreanu --- src/sqlite3gen.cpp | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/src/sqlite3gen.cpp b/src/sqlite3gen.cpp index d22d915..94afed7 100644 --- a/src/sqlite3gen.cpp +++ b/src/sqlite3gen.cpp @@ -708,14 +708,15 @@ static void generateSqlite3ForMember(sqlite3*db,MemberDef *md,Definition *def) if (id_bfile == -1) { sqlite3_clear_bindings(i_s_memberdef); - return; } + else + { + bindIntParameter(i_s_memberdef,":id_ibfile",id_bfile); + bindIntParameter(i_s_memberdef,":bline",md->getStartBodyLine()); - bindIntParameter(i_s_memberdef,":id_ibfile",id_bfile); - bindIntParameter(i_s_memberdef,":bline",md->getStartBodyLine()); - - // XXX implement getStartBodyColumn - bindIntParameter(i_s_memberdef,":bcolumn",1); + // XXX implement getStartBodyColumn + bindIntParameter(i_s_memberdef,":bcolumn",1); + } } } } @@ -724,7 +725,7 @@ static void generateSqlite3ForMember(sqlite3*db,MemberDef *md,Definition *def) { sqlite3_clear_bindings(i_s_memberdef); } - /*int id_src =*/ sqlite3_last_insert_rowid(db); + sqlite3_last_insert_rowid(db); // + source references // The cross-references in initializers only work when both the src and dst @@ -825,8 +826,9 @@ static void generateSqlite3ForClass(sqlite3 *db, ClassDef *cd) bindIntParameter(i_s_compounddef,":line",cd->getDefLine()); bindIntParameter(i_s_compounddef,":column",cd->getDefColumn()); - if (-1==step(db,i_s_compounddef)) - return; + if (-1==step(db,i_s_compounddef)) { + sqlite3_clear_bindings(i_s_compounddef); + } // + list of direct super classes if (cd->baseClasses()) @@ -848,8 +850,10 @@ static void generateSqlite3ForClass(sqlite3 *db, ClassDef *cd) bindTextParameter(i_s_basecompoundref,":base",bcd->classDef->displayName()); } bindTextParameter(i_s_basecompoundref,":derived",cd->displayName()); - if (-1==step(db,i_s_basecompoundref)) + if (-1==step(db,i_s_basecompoundref)) { + sqlite3_clear_bindings(i_s_basecompoundref); continue; + } } } @@ -865,8 +869,10 @@ static void generateSqlite3ForClass(sqlite3 *db, ClassDef *cd) bindTextParameter(i_s_derivedcompoundref,":refid",bcd->classDef->getOutputFileBase()); bindIntParameter(i_s_derivedcompoundref,":prot",bcd->prot); bindIntParameter(i_s_derivedcompoundref,":virt",bcd->virt); - if (-1==step(db,i_s_derivedcompoundref)) + if (-1==step(db,i_s_derivedcompoundref)) { + sqlite3_reset(i_s_derivedcompoundref); continue; + } } } @@ -888,7 +894,7 @@ static void generateSqlite3ForClass(sqlite3 *db, ClassDef *cd) bindIntParameter(i_s_includes,":id_src",id_file); bindTextParameter(i_s_includes,":dst",nm); if (-1==step(db,i_s_includes)) - return; + sqlite3_clear_bindings(i_s_basecompoundref); } } } -- cgit v0.12 From fd4beb272e5f1a760a71ab8d85463b8356c6f786 Mon Sep 17 00:00:00 2001 From: albert-github Date: Wed, 15 Jan 2014 13:11:30 +0100 Subject: Wrong UTF 8 codes The utf-8 code for eta was identical to the code for theta and the code for Prime was identical to the one for prime --- src/util.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/util.cpp b/src/util.cpp index 54be42d..f38f108 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -5765,7 +5765,7 @@ QCString convertCharEntitiesToUTF8(const QCString &s) entityMap.insert("delta", "\xCE\xB4"); entityMap.insert("epsilon", "\xCE\xB5"); entityMap.insert("zeta", "\xCE\xB6"); - entityMap.insert("eta", "\xCE\xB8"); + entityMap.insert("eta", "\xCE\xB7"); entityMap.insert("theta", "\xCE\xB8"); entityMap.insert("iota", "\xCE\xB9"); entityMap.insert("kappa", "\xCE\xBA"); @@ -5786,7 +5786,7 @@ QCString convertCharEntitiesToUTF8(const QCString &s) entityMap.insert("sect", "\xC2\xA7"); entityMap.insert("deg", "\xC2\xB0"); entityMap.insert("prime", "\xE2\x80\xB2"); - entityMap.insert("Prime", "\xE2\x80\xB2"); + entityMap.insert("Prime", "\xE2\x80\xB3"); entityMap.insert("infin", "\xE2\x88\x9E"); entityMap.insert("empty", "\xE2\x88\x85"); entityMap.insert("plusmn", "\xC2\xB1"); -- cgit v0.12