Changeset: a91eccaacae8 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/a91eccaacae8
Modified Files:
sql/storage/bat/bat_logger.c
Branch: mangled
Log Message:
Work around bug in Visual Studio 2017.
It looks like the compiler evaluates
&(lng){BATcount(funcs_name_mangled_final_order)} too early (before the
assignment to funcs_name_mangled_final_order earlier in the expression).
diffs (23 lines):
diff --git a/sql/storage/bat/bat_logger.c b/sql/storage/bat/bat_logger.c
--- a/sql/storage/bat/bat_logger.c
+++ b/sql/storage/bat/bat_logger.c
@@ -3354,13 +3354,17 @@ bl_postversion(void *Store, void *Lg)
}
{
- BAT *funcs_name_mangled_final_order = NULL;
+ BAT *funcs_name_mangled_final_order;
if (
(funcs_name_mangled_final_order =
BATconstant(funcs_name->hseqbase, TYPE_str, &str_nil, BATcount(funcs_name),
PERSISTENT)) == NULL ||
BATreplace(funcs_name_mangled_final_order,
funcs_name_mangled_rid, funcs_name_mangled, false) != GDK_SUCCEED ||
(funcs_name_mangled_final_order =
BATsetaccess(funcs_name_mangled_final_order, BAT_READ)) == NULL ||
BUNappend(lg->catalog_id, &(int) {2165}, false)
!= GDK_SUCCEED || // 2165 is sys.functions.mangled_name
- BUNappend(lg->catalog_bid,
&funcs_name_mangled_final_order->batCacheid, false) != GDK_SUCCEED ||
+ BUNappend(lg->catalog_bid,
&funcs_name_mangled_final_order->batCacheid, false) != GDK_SUCCEED) {
+ bat_destroy(funcs_name_mangled_final_order);
+ goto bailout;
+ }
+ if (
(lg->catalog_lid &&
BUNappend(lg->catalog_lid, &lng_nil, false) != GDK_SUCCEED) ||
(lg->catalog_cnt &&
BUNappend(lg->catalog_cnt, &(lng){BATcount(funcs_name_mangled_final_order)},
false) != GDK_SUCCEED) ||
(old_lg &&
BUNappend(old_lg->add, &funcs_name_mangled_final_order->batCacheid, false) !=
GDK_SUCCEED)) {
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list