From e2103aafa0e93d68c79a3ebab2d3a755e039a3d2 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 18 Feb 2008 23:29:39 +0100 Subject: Fix for server bug experienced in Maria (wrong "Truncated incorrect value" error even though the value was correct): a C function in my_getopt.c was taking bool* in parameter and was called from C++ sql_plugin.cc, but on some Mac OS X sizeof(bool) is 1 in C and 4 in C++, giving funny mismatches. Fixed, all other occurences of bool in C are removed, future ones are blocked by a "C-bool-catcher" in my_global.h (use my_bool). client/mysqldump.c: my_bool for C client/mysqltest.c: my_bool for C extra/replace.c: my_bool for C include/my_getopt.h: my_bool for C include/my_global.h: Prevent people from using bool in C, it causes real bugs. include/my_sys.h: my_bool for C include/my_time.h: my_bool for C include/thr_lock.h: my_bool for C libmysql/libmysql.c: my_bool for C mysys/charset.c: my_bool for C mysys/my_getopt.c: my_bool for C mysys/queues.c: my_bool for C mysys/thr_lock.c: my_bool for C regex/reginit.c: my_bool for C sql/set_var.cc: C functions use my_bool so we must use my_bool too. sql/sql_plugin.cc: C functions use my_bool so we must use my_bool too. This fixes a real observed bug of Maria, because on some Mac OS X, sizeof(bool) is 1 in C and 4 in C++, so the bool* does wrong. Removing useless line. storage/heap/hp_update.c: my_bool for C storage/myisam/mi_check.c: my_bool for C storage/myisam/mi_dynrec.c: my_bool for C storage/myisam/mi_search.c: my_bool for C storage/myisam/mi_update.c: my_bool for C storage/myisam/mi_write.c: my_bool for C storage/myisam/myisamdef.h: my_bool for C storage/myisam/myisamlog.c: my_bool for C storage/myisam/myisampack.c: my_bool for C tests/mysql_client_test.c: my_bool for C unittest/mysys/bitmap-t.c: my_bool for C vio/viosslfactories.c: my_bool for C --- mysys/thr_lock.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'mysys/thr_lock.c') diff --git a/mysys/thr_lock.c b/mysys/thr_lock.c index 7f7be4835a5..a66836a35f5 100644 --- a/mysys/thr_lock.c +++ b/mysys/thr_lock.c @@ -121,7 +121,7 @@ thr_lock_owner_equal(THR_LOCK_OWNER *rhs, THR_LOCK_OWNER *lhs) static uint found_errors=0; static int check_lock(struct st_lock_list *list, const char* lock_type, - const char *where, my_bool same_owner, bool no_cond) + const char *where, my_bool same_owner, my_bool no_cond) { THR_LOCK_DATA *data,**prev; uint count=0; @@ -708,7 +708,7 @@ end: static inline void free_all_read_locks(THR_LOCK *lock, - bool using_concurrent_insert) + my_bool using_concurrent_insert) { THR_LOCK_DATA *data=lock->read_wait.data; @@ -1062,7 +1062,7 @@ void thr_multi_unlock(THR_LOCK_DATA **data,uint count) TL_WRITE_ONLY to abort any new accesses to the lock */ -void thr_abort_locks(THR_LOCK *lock, bool upgrade_lock) +void thr_abort_locks(THR_LOCK *lock, my_bool upgrade_lock) { THR_LOCK_DATA *data; DBUG_ENTER("thr_abort_locks"); -- cgit v1.2.1