8
0
mirror of https://github.com/FirebirdSQL/firebird.git synced 2025-01-23 16:03:02 +01:00

Backported fix for CORE-1844: Valgrind often reports "Conditional jump or move depends on uninitialised value(s)" in check_status_vector()

This commit is contained in:
alexpeshkoff 2008-05-22 12:12:21 +00:00
parent b575348bef
commit e1f2751218
3 changed files with 807 additions and 807 deletions

File diff suppressed because it is too large Load Diff

View File

@ -4096,6 +4096,9 @@ static void shutdown_blocking_thread( ISC_STATUS * status_vector)
event_t* event_ptr = LOCK_owner->own_wakeup; event_t* event_ptr = LOCK_owner->own_wakeup;
SLONG value = ISC_event_clear(event_ptr); SLONG value = ISC_event_clear(event_ptr);
/* Tell the scheduler to allow AST's to run */
AST_ENABLE();
/* wait for AST thread to start (or 5 secs) */ /* wait for AST thread to start (or 5 secs) */
startupSemaphore.tryEnter(5); startupSemaphore.tryEnter(5);
@ -4103,9 +4106,6 @@ static void shutdown_blocking_thread( ISC_STATUS * status_vector)
ISC_event_post(LOCK_owner->own_blocking); ISC_event_post(LOCK_owner->own_blocking);
ISC_event_post(LOCK_owner->own_stall); ISC_event_post(LOCK_owner->own_stall);
/* Tell the scheduler to allow AST's to run */
AST_ENABLE();
/* Wait for the AST thread to finish cleanup or for 10 seconds */ /* Wait for the AST thread to finish cleanup or for 10 seconds */
ISC_event_wait(1, &event_ptr, &value, 10 * 1000000, ISC_event_wait(1, &event_ptr, &value, 10 * 1000000,
lock_alarm_handler, event_ptr); lock_alarm_handler, event_ptr);

View File

@ -196,25 +196,25 @@ static const SCHAR *isc_c_boiler_plate[] = {
}; };
static const SCHAR *isc_cpp_boiler_plate[] = { static const SCHAR *isc_cpp_boiler_plate[] = {
"const ISC_LONG isc_arg_end = 0; // end of argument list ", "const ISC_STATUS isc_arg_end = 0; // end of argument list ",
"const ISC_LONG isc_arg_gds = 1; // generic DSRI status value ", "const ISC_STATUS isc_arg_gds = 1; // generic DSRI status value ",
"const ISC_LONG isc_arg_string = 2; // string argument ", "const ISC_STATUS isc_arg_string = 2; // string argument ",
"const ISC_LONG isc_arg_cstring = 3; // count & string argument ", "const ISC_STATUS isc_arg_cstring = 3; // count & string argument ",
"const ISC_LONG isc_arg_number = 4; // numeric argument (long) ", "const ISC_STATUS isc_arg_number = 4; // numeric argument (long) ",
"const ISC_LONG isc_arg_interpreted = 5; // interpreted status code (string) ", "const ISC_STATUS isc_arg_interpreted = 5; // interpreted status code (string) ",
"const ISC_LONG isc_arg_vms = 6; // VAX/VMS status code (long) ", "const ISC_STATUS isc_arg_vms = 6; // VAX/VMS status code (long) ",
"const ISC_LONG isc_arg_unix = 7; // UNIX error code ", "const ISC_STATUS isc_arg_unix = 7; // UNIX error code ",
"const ISC_LONG isc_arg_domain = 8; // Apollo/Domain error code ", "const ISC_STATUS isc_arg_domain = 8; // Apollo/Domain error code ",
"const ISC_LONG isc_arg_dos = 9; // MSDOS/OS2 error code ", "const ISC_STATUS isc_arg_dos = 9; // MSDOS/OS2 error code ",
"const ISC_LONG isc_arg_mpexl = 10; // HP MPE/XL error code ", "const ISC_STATUS isc_arg_mpexl = 10; // HP MPE/XL error code ",
"const ISC_LONG isc_arg_mpexl_ipc = 11; // HP MPE/XL IPC error code ", "const ISC_STATUS isc_arg_mpexl_ipc = 11; // HP MPE/XL IPC error code ",
// #'s 12-14 WERE USED BY TWIN SUN AND THUS MUST BE SKIPPED BY US! // #'s 12-14 WERE USED BY TWIN SUN AND THUS MUST BE SKIPPED BY US!
"const ISC_LONG isc_arg_next_mach = 15; // NeXT/Mach error code ", "const ISC_STATUS isc_arg_next_mach = 15; // NeXT/Mach error code ",
"const ISC_LONG isc_arg_netware = 16; // NetWare error code ", "const ISC_STATUS isc_arg_netware = 16; // NetWare error code ",
"const ISC_LONG isc_arg_win32 = 17; // Win32 error code ", "const ISC_STATUS isc_arg_win32 = 17; // Win32 error code ",
"const ISC_LONG isc_arg_warning = 18; // warning argument ", "const ISC_STATUS isc_arg_warning = 18; // warning argument ",
"", "",
}; };
@ -396,11 +396,11 @@ static void build_iberror_h(void)
fprintf(iberror, "\n#ifdef __cplusplus /* c++ definitions */\n\n"); fprintf(iberror, "\n#ifdef __cplusplus /* c++ definitions */\n\n");
fprintf(iberror, fprintf(iberror,
"const ISC_LONG isc_facility = %d;\n", isc_facility_local); "const ISC_STATUS isc_facility = %d;\n", isc_facility_local);
fprintf(iberror, fprintf(iberror,
"const ISC_LONG isc_base = %"SLONGFORMAT"L;\n", isc_base_local); "const ISC_STATUS isc_base = %"SLONGFORMAT"L;\n", isc_base_local);
fprintf(iberror, fprintf(iberror,
"const ISC_LONG isc_factor = %"SLONGFORMAT";\n", isc_factor_local); "const ISC_STATUS isc_factor = %"SLONGFORMAT";\n", isc_factor_local);
// Append the ISC C++ boiler plate // Append the ISC C++ boiler plate
@ -424,13 +424,13 @@ static void build_iberror_h(void)
} }
last_code = N.CODE; last_code = N.CODE;
new_code = ENCODE_ISC_MSG(S.NUMBER, N.FAC_CODE); new_code = ENCODE_ISC_MSG(S.NUMBER, N.FAC_CODE);
fprintf(iberror, "const ISC_LONG isc_%-32.32s = %luL;\n", S.GDS_SYMBOL, fprintf(iberror, "const ISC_STATUS isc_%-32.32s = %luL;\n", S.GDS_SYMBOL,
new_code); new_code);
++code; ++code;
END_FOR; END_FOR;
--code; --code;
fprintf(iberror, "const ISC_LONG isc_%-32.32s = %d;\n", "err_max", code); fprintf(iberror, "const ISC_STATUS isc_%-32.32s = %d;\n", "err_max", code);
fprintf(iberror, "\n"); fprintf(iberror, "\n");