8
0
mirror of https://github.com/FirebirdSQL/firebird.git synced 2025-01-23 10:43:03 +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;
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) */
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_stall);
/* Tell the scheduler to allow AST's to run */
AST_ENABLE();
/* Wait for the AST thread to finish cleanup or for 10 seconds */
ISC_event_wait(1, &event_ptr, &value, 10 * 1000000,
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[] = {
"const ISC_LONG isc_arg_end = 0; // end of argument list ",
"const ISC_LONG isc_arg_gds = 1; // generic DSRI status value ",
"const ISC_LONG isc_arg_string = 2; // string argument ",
"const ISC_LONG isc_arg_cstring = 3; // count & string argument ",
"const ISC_LONG isc_arg_number = 4; // numeric argument (long) ",
"const ISC_LONG isc_arg_interpreted = 5; // interpreted status code (string) ",
"const ISC_LONG isc_arg_vms = 6; // VAX/VMS status code (long) ",
"const ISC_LONG isc_arg_unix = 7; // UNIX error code ",
"const ISC_LONG isc_arg_domain = 8; // Apollo/Domain error code ",
"const ISC_LONG isc_arg_dos = 9; // MSDOS/OS2 error code ",
"const ISC_LONG 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_end = 0; // end of argument list ",
"const ISC_STATUS isc_arg_gds = 1; // generic DSRI status value ",
"const ISC_STATUS isc_arg_string = 2; // string argument ",
"const ISC_STATUS isc_arg_cstring = 3; // count & string argument ",
"const ISC_STATUS isc_arg_number = 4; // numeric argument (long) ",
"const ISC_STATUS isc_arg_interpreted = 5; // interpreted status code (string) ",
"const ISC_STATUS isc_arg_vms = 6; // VAX/VMS status code (long) ",
"const ISC_STATUS isc_arg_unix = 7; // UNIX error code ",
"const ISC_STATUS isc_arg_domain = 8; // Apollo/Domain error code ",
"const ISC_STATUS isc_arg_dos = 9; // MSDOS/OS2 error code ",
"const ISC_STATUS isc_arg_mpexl = 10; // HP MPE/XL 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!
"const ISC_LONG isc_arg_next_mach = 15; // NeXT/Mach error code ",
"const ISC_LONG isc_arg_netware = 16; // NetWare error code ",
"const ISC_LONG isc_arg_win32 = 17; // Win32 error code ",
"const ISC_LONG isc_arg_warning = 18; // warning argument ",
"const ISC_STATUS isc_arg_next_mach = 15; // NeXT/Mach error code ",
"const ISC_STATUS isc_arg_netware = 16; // NetWare error code ",
"const ISC_STATUS isc_arg_win32 = 17; // Win32 error code ",
"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,
"const ISC_LONG isc_facility = %d;\n", isc_facility_local);
"const ISC_STATUS isc_facility = %d;\n", isc_facility_local);
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,
"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
@ -424,13 +424,13 @@ static void build_iberror_h(void)
}
last_code = N.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);
++code;
END_FOR;
--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");