Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 82338 Details for
Bug 120867
dev-db/firebird-1.5.2 fails with gcc-4.0
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
gcc-4.0 patch
firebird-gcc4.patch (text/plain), 70.35 KB, created by
Mark Loeser (RETIRED)
on 2006-03-16 23:07:42 UTC
(
hide
)
Description:
gcc-4.0 patch
Filename:
MIME Type:
Creator:
Mark Loeser (RETIRED)
Created:
2006-03-16 23:07:42 UTC
Size:
70.35 KB
patch
obsolete
>diff -ur firebird-1.5.3.4870-orig/src/burp/burp.cpp firebird-1.5.3.4870/src/burp/burp.cpp >--- firebird-1.5.3.4870-orig/src/burp/burp.cpp 2006-03-17 01:39:04.000000000 -0500 >+++ firebird-1.5.3.4870/src/burp/burp.cpp 2006-03-17 01:32:16.000000000 -0500 >@@ -1606,7 +1606,7 @@ > #ifndef WIN_NT > signal(SIGPIPE, SIG_IGN); > #endif >- fil->fil_fd = reinterpret_cast<DESC>(GBAK_STDOUT_DESC); >+ fil->fil_fd = GBAK_STDOUT_DESC(); > break; > } > else >@@ -1724,7 +1724,7 @@ > > tdgbl->action->act_action = ACT_restore; > if (!strcmp(fil->fil_name, "stdin")) { >- fil->fil_fd = reinterpret_cast<DESC>(GBAK_STDIN_DESC); >+ fil->fil_fd = GBAK_STDIN_DESC(); > tdgbl->file_desc = fil->fil_fd; > tdgbl->gbl_sw_files = fil->fil_next; > } >diff -ur firebird-1.5.3.4870-orig/src/burp/std_desc.h firebird-1.5.3.4870/src/burp/std_desc.h >--- firebird-1.5.3.4870-orig/src/burp/std_desc.h 2006-03-17 01:39:04.000000000 -0500 >+++ firebird-1.5.3.4870/src/burp/std_desc.h 2006-03-17 01:41:38.000000000 -0500 >@@ -35,12 +35,33 @@ > #include "firebird.h" > > #ifdef WIN_NT >+ > #include <windows.h> >-#define GBAK_STDIN_DESC GetStdHandle(STD_INPUT_HANDLE) /* standart input file descriptor */ >-#define GBAK_STDOUT_DESC GetStdHandle(STD_OUTPUT_HANDLE) /* standart output file descriptor */ >+ >+typedef HANDLE DESC; >+ >+static inline DESC GBAK_STDIN_DESC(void) >+{ >+ return GetStdHandle(STD_INPUT_HANDLE); // standard input file descriptor >+} >+static inline DESC GBAK_STDOUT_DESC(void) >+{ >+ return GetStdHandle(STD_OUTPUT_HANDLE); // standard output file descriptor >+} >+ > #else //WIN_NT >-#define GBAK_STDIN_DESC (int)0 /* standart input file descriptor */ >-#define GBAK_STDOUT_DESC (int)1 /* standart output file descriptor */ >+ >+typedef int DESC; >+ >+static inline DESC GBAK_STDIN_DESC(void) >+{ >+ return 0; // standard input file descriptor >+} >+static inline DESC GBAK_STDOUT_DESC(void) >+{ >+ return 1; // standard output file descriptor >+} >+ > #endif //WIN_NT > > #endif //GBAK_STD_DESC_H >diff -ur firebird-1.5.3.4870-orig/src/common/classes/alloc.h firebird-1.5.3.4870/src/common/classes/alloc.h >--- firebird-1.5.3.4870-orig/src/common/classes/alloc.h 2006-03-17 01:39:04.000000000 -0500 >+++ firebird-1.5.3.4870/src/common/classes/alloc.h 2006-03-17 01:32:16.000000000 -0500 >@@ -241,23 +241,29 @@ > > void operator delete[](void* mem) throw(); > >+#if __GNUC__ < 4 >+#define STATIC_NEW static >+#else >+#define STATIC_NEW >+#endif >+ > #ifdef DEBUG_GDS_ALLOC >-static inline void* operator new(size_t s, Firebird::MemoryPool& pool, char* file, int line) { >+STATIC_NEW inline void* operator new(size_t s, Firebird::MemoryPool& pool, char* file, int line) { > return pool.allocate(s, 0, file, line); > // return pool.calloc(s, 0, file, line); > } >-static inline void* operator new[](size_t s, Firebird::MemoryPool& pool, char* file, int line) { >+STATIC_NEW inline void* operator new[](size_t s, Firebird::MemoryPool& pool, char* file, int line) { > return pool.allocate(s, 0, file, line); > // return pool.calloc(s, 0, file, line); > } > #define FB_NEW(pool) new(pool,__FILE__,__LINE__) > #define FB_NEW_RPT(pool,count) new(pool,count,__FILE__,__LINE__) > #else >-static inline void* operator new(size_t s, Firebird::MemoryPool& pool) { >+STATIC_NEW inline void* operator new(size_t s, Firebird::MemoryPool& pool) { > return pool.allocate(s); > // return pool.calloc(s); > } >-static inline void* operator new[](size_t s, Firebird::MemoryPool& pool) { >+STATIC_NEW inline void* operator new[](size_t s, Firebird::MemoryPool& pool) { > return pool.allocate(s); > // return pool.calloc(s); > } >diff -ur firebird-1.5.3.4870-orig/src/common/config/config.cpp firebird-1.5.3.4870/src/common/config/config.cpp >--- firebird-1.5.3.4870-orig/src/common/config/config.cpp 2006-03-17 01:39:04.000000000 -0500 >+++ firebird-1.5.3.4870/src/common/config/config.cpp 2006-03-17 01:32:16.000000000 -0500 >@@ -261,12 +261,12 @@ > > int Config::getSortMemBlockSize() > { >- return (int) sysConfig.values[KEY_SORT_MEM_BLOCK_SIZE]; >+ return (int)(IPTR) sysConfig.values[KEY_SORT_MEM_BLOCK_SIZE]; > } > > int Config::getSortMemUpperLimit() > { >- return (int) sysConfig.values[KEY_SORT_MEM_UPPER_LIMIT]; >+ return (int)(IPTR) sysConfig.values[KEY_SORT_MEM_UPPER_LIMIT]; > } > > bool Config::getRemoteFileOpenAbility() >@@ -276,12 +276,12 @@ > > int Config::getGuardianOption() > { >- return (int) sysConfig.values[KEY_GUARDIAN_OPTION]; >+ return (int)(IPTR) sysConfig.values[KEY_GUARDIAN_OPTION]; > } > > int Config::getCpuAffinityMask() > { >- return (int) sysConfig.values[KEY_CPU_AFFINITY_MASK]; >+ return (int)(IPTR) sysConfig.values[KEY_CPU_AFFINITY_MASK]; > } > > bool Config::getOldParameterOrdering() >@@ -291,7 +291,7 @@ > > int Config::getTcpRemoteBufferSize() > { >- return (int) sysConfig.values[KEY_TCP_REMOTE_BUFFER_SIZE]; >+ return (int)(IPTR) sysConfig.values[KEY_TCP_REMOTE_BUFFER_SIZE]; > } > > bool Config::getTcpNoNagle() >@@ -301,37 +301,37 @@ > > int Config::getIpcMapSize() > { >- return (int) sysConfig.values[KEY_IPC_MAP_SIZE]; >+ return (int)(IPTR) sysConfig.values[KEY_IPC_MAP_SIZE]; > } > > int Config::getDefaultDbCachePages() > { >- return (int) sysConfig.values[KEY_DEFAULT_DB_CACHE_PAGES]; >+ return (int)(IPTR) sysConfig.values[KEY_DEFAULT_DB_CACHE_PAGES]; > } > > int Config::getConnectionTimeout() > { >- return (int) sysConfig.values[KEY_CONNECTION_TIMEOUT]; >+ return (int)(IPTR) sysConfig.values[KEY_CONNECTION_TIMEOUT]; > } > > int Config::getDummyPacketInterval() > { >- return (int) sysConfig.values[KEY_DUMMY_PACKET_INTERVAL]; >+ return (int)(IPTR) sysConfig.values[KEY_DUMMY_PACKET_INTERVAL]; > } > > int Config::getLockMemSize() > { >- return (int) sysConfig.values[KEY_LOCK_MEM_SIZE]; >+ return (int)(IPTR) sysConfig.values[KEY_LOCK_MEM_SIZE]; > } > > int Config::getLockSemCount() > { >- return (int) sysConfig.values[KEY_LOCK_SEM_COUNT]; >+ return (int)(IPTR) sysConfig.values[KEY_LOCK_SEM_COUNT]; > } > > int Config::getLockSignal() > { >- return (int) sysConfig.values[KEY_LOCK_SIGNAL]; >+ return (int)(IPTR) sysConfig.values[KEY_LOCK_SIGNAL]; > } > > bool Config::getLockGrantOrder() >@@ -341,27 +341,27 @@ > > int Config::getLockHashSlots() > { >- return (int) sysConfig.values[KEY_LOCK_HASH_SLOTS]; >+ return (int)(IPTR) sysConfig.values[KEY_LOCK_HASH_SLOTS]; > } > > int Config::getLockAcquireSpins() > { >- return (int) sysConfig.values[KEY_LOCK_ACQUIRE_SPINS]; >+ return (int)(IPTR) sysConfig.values[KEY_LOCK_ACQUIRE_SPINS]; > } > > int Config::getEventMemSize() > { >- return (int) sysConfig.values[KEY_EVENT_MEM_SIZE]; >+ return (int)(IPTR) sysConfig.values[KEY_EVENT_MEM_SIZE]; > } > > int Config::getDeadlockTimeout() > { >- return (int) sysConfig.values[KEY_DEADLOCK_TIMEOUT]; >+ return (int)(IPTR) sysConfig.values[KEY_DEADLOCK_TIMEOUT]; > } > > int Config::getSolarisStallValue() > { >- return (int) sysConfig.values[KEY_SOLARIS_STALL_VALUE]; >+ return (int)(IPTR) sysConfig.values[KEY_SOLARIS_STALL_VALUE]; > } > > bool Config::getTraceMemoryPools() >@@ -371,7 +371,7 @@ > > int Config::getPrioritySwitchDelay() > { >- int rc = (int) sysConfig.values[KEY_PRIORITY_SWITCH_DELAY]; >+ int rc = (int)(IPTR) sysConfig.values[KEY_PRIORITY_SWITCH_DELAY]; > if (rc < 1) > rc = 1; > return rc; >@@ -379,7 +379,7 @@ > > int Config::getDeadThreadsCollection() > { >- int rc = (int) sysConfig.values[KEY_DEAD_THREADS_COLLECTION]; >+ int rc = (int)(IPTR) sysConfig.values[KEY_DEAD_THREADS_COLLECTION]; > if (rc < 1) > rc = 1; > return rc; >@@ -387,7 +387,7 @@ > > int Config::getPriorityBoost() > { >- int rc = (int) sysConfig.values[KEY_PRIORITY_BOOST]; >+ int rc = (int)(IPTR) sysConfig.values[KEY_PRIORITY_BOOST]; > if (rc < 1) > rc = 1; > if (rc > 1000) >@@ -402,7 +402,7 @@ > > int Config::getRemoteServicePort() > { >- return (int) sysConfig.values[KEY_REMOTE_SERVICE_PORT]; >+ return (int)(IPTR) sysConfig.values[KEY_REMOTE_SERVICE_PORT]; > } > > const char *Config::getRemotePipeName() >@@ -417,17 +417,17 @@ > > int Config::getMaxUnflushedWrites() > { >- return (int) sysConfig.values[KEY_MAX_UNFLUSHED_WRITES]; >+ return (int)(IPTR) sysConfig.values[KEY_MAX_UNFLUSHED_WRITES]; > } > > int Config::getMaxUnflushedWriteTime() > { >- return (int) sysConfig.values[KEY_MAX_UNFLUSHED_WRITE_TIME]; >+ return (int)(IPTR) sysConfig.values[KEY_MAX_UNFLUSHED_WRITE_TIME]; > } > > int Config::getProcessPriorityLevel() > { >- return (int) sysConfig.values[KEY_PROCESS_PRIORITY_LEVEL]; >+ return (int)(IPTR) sysConfig.values[KEY_PROCESS_PRIORITY_LEVEL]; > } > > bool Config::getCreateInternalWindow() >@@ -443,7 +443,7 @@ > int Config::getRemoteAuxPort() > { > #ifdef SUPERSERVER >- return (int) sysConfig.values[KEY_REMOTE_AUX_PORT]; >+ return (int)(IPTR) sysConfig.values[KEY_REMOTE_AUX_PORT]; > #else > return 0; > #endif >diff -ur firebird-1.5.3.4870-orig/src/dsql/parse.cpp firebird-1.5.3.4870/src/dsql/parse.cpp >--- firebird-1.5.3.4870-orig/src/dsql/parse.cpp 2006-03-17 01:39:04.000000000 -0500 >+++ firebird-1.5.3.4870/src/dsql/parse.cpp 2006-03-17 01:32:17.000000000 -0500 >@@ -6421,7 +6421,7 @@ > case 79: > { > lex.g_field->fld_dtype = dtype_cstring; >- lex.g_field->fld_character_length = (USHORT) yyvsp[-2]; } >+ lex.g_field->fld_character_length = (USHORT)(IPTR) yyvsp[-2]; } > break; > case 80: > { yyval = (DSQL_NOD) NULL; } >@@ -7541,27 +7541,27 @@ > case 507: > { > lex.g_field->fld_dtype = dtype_blob; >- lex.g_field->fld_seg_length = (USHORT) yyvsp[-1]; >+ lex.g_field->fld_seg_length = (USHORT)(IPTR) yyvsp[-1]; > lex.g_field->fld_sub_type = 0; > } > break; > case 508: > { > lex.g_field->fld_dtype = dtype_blob; >- lex.g_field->fld_seg_length = (USHORT) yyvsp[-3]; >- lex.g_field->fld_sub_type = (USHORT) yyvsp[-1]; >+ lex.g_field->fld_seg_length = (USHORT)(IPTR) yyvsp[-3]; >+ lex.g_field->fld_sub_type = (USHORT)(IPTR) yyvsp[-1]; > } > break; > case 509: > { > lex.g_field->fld_dtype = dtype_blob; > lex.g_field->fld_seg_length = 80; >- lex.g_field->fld_sub_type = (USHORT) yyvsp[-1]; >+ lex.g_field->fld_sub_type = (USHORT)(IPTR) yyvsp[-1]; > } > break; > case 510: > { >- lex.g_field->fld_seg_length = (USHORT) yyvsp[0]; >+ lex.g_field->fld_seg_length = (USHORT)(IPTR) yyvsp[0]; > } > break; > case 511: >@@ -7571,7 +7571,7 @@ > break; > case 512: > { >- lex.g_field->fld_sub_type = (USHORT) yyvsp[0]; >+ lex.g_field->fld_sub_type = (USHORT)(IPTR) yyvsp[0]; > } > break; > case 513: >@@ -7592,7 +7592,7 @@ > case 517: > { > lex.g_field->fld_dtype = dtype_text; >- lex.g_field->fld_character_length = (USHORT) yyvsp[-1]; >+ lex.g_field->fld_character_length = (USHORT)(IPTR) yyvsp[-1]; > lex.g_field->fld_flags |= FLD_national; > } > break; >@@ -7606,14 +7606,14 @@ > case 519: > { > lex.g_field->fld_dtype = dtype_varying; >- lex.g_field->fld_character_length = (USHORT) yyvsp[-1]; >+ lex.g_field->fld_character_length = (USHORT)(IPTR) yyvsp[-1]; > lex.g_field->fld_flags |= FLD_national; > } > break; > case 520: > { > lex.g_field->fld_dtype = dtype_text; >- lex.g_field->fld_character_length = (USHORT) yyvsp[-1]; >+ lex.g_field->fld_character_length = (USHORT)(IPTR) yyvsp[-1]; > } > break; > case 521: >@@ -7625,7 +7625,7 @@ > case 522: > { > lex.g_field->fld_dtype = dtype_varying; >- lex.g_field->fld_character_length = (USHORT) yyvsp[-1]; >+ lex.g_field->fld_character_length = (USHORT)(IPTR) yyvsp[-1]; > } > break; > case 531: >@@ -7705,7 +7705,7 @@ > lex.g_field->fld_dtype = dtype_long; > lex.g_field->fld_length = sizeof (SLONG); > } >- lex.g_field->fld_precision = (USHORT) yyvsp[-1]; >+ lex.g_field->fld_precision = (USHORT)(IPTR) yyvsp[-1]; > } > break; > case 536: >@@ -7765,8 +7765,8 @@ > lex.g_field->fld_length = sizeof (SLONG); > } > } >- lex.g_field->fld_precision = (USHORT) yyvsp[-3]; >- lex.g_field->fld_scale = - (SSHORT) yyvsp[-1]; >+ lex.g_field->fld_precision = (USHORT)(IPTR) yyvsp[-3]; >+ lex.g_field->fld_scale = - (SSHORT)(IPTR) yyvsp[-1]; > } > break; > case 539: >@@ -7932,7 +7932,7 @@ > { yyval = make_node (nod_table_lock, (int) 2, make_list (yyvsp[-1]), yyvsp[0]); } > break; > case 602: >-{ yyval = make_flag_node (nod_lock_mode, (SSHORT) ((SSHORT) yyvsp[-1] | (SSHORT) yyvsp[0]), (SSHORT) 0, NULL); } >+{ yyval = make_flag_node (nod_lock_mode, (SSHORT) ((SSHORT)(IPTR) yyvsp[-1] | (SSHORT)(IPTR) yyvsp[0]), (SSHORT) 0, NULL); } > break; > case 603: > { yyval = 0; } >diff -ur firebird-1.5.3.4870-orig/src/gpre/c_cxx.cpp firebird-1.5.3.4870/src/gpre/c_cxx.cpp >--- firebird-1.5.3.4870-orig/src/gpre/c_cxx.cpp 2006-03-17 01:39:04.000000000 -0500 >+++ firebird-1.5.3.4870/src/gpre/c_cxx.cpp 2006-03-17 01:32:18.000000000 -0500 >@@ -2184,7 +2184,7 @@ > > args.pat_database = (DBB) init->nod_arg[3]; > args.pat_vector1 = status_vector(action); >- args.pat_long1 = (int) init->nod_arg[2]; >+ args.pat_long1 = (int)(IPTR) init->nod_arg[2]; > args.pat_value2 = (int) event_list->nod_count; > > // generate call to dynamically generate event blocks >@@ -2255,7 +2255,7 @@ > event_init = (GPRE_NOD) event_action->act_object; > stack_name = (SYM) event_init->nod_arg[0]; > if (!strcmp(event_name->sym_string, stack_name->sym_string)) { >- ident = (int) event_init->nod_arg[2]; >+ ident = (int)(IPTR) event_init->nod_arg[2]; > database = (DBB) event_init->nod_arg[3]; > } > } >diff -ur firebird-1.5.3.4870-orig/src/gpre/cmd.cpp firebird-1.5.3.4870/src/gpre/cmd.cpp >--- firebird-1.5.3.4870-orig/src/gpre/cmd.cpp 2006-03-17 01:39:04.000000000 -0500 >+++ firebird-1.5.3.4870/src/gpre/cmd.cpp 2006-03-17 01:32:18.000000000 -0500 >@@ -204,7 +204,7 @@ > > case ACT_drop_shadow: > put_numeric(request, gds_dyn_delete_shadow, >- (SSHORT) action->act_object); >+ (SSHORT)(IPTR) action->act_object); > STUFF_END; > break; > >diff -ur firebird-1.5.3.4870-orig/src/gpre/cme.cpp firebird-1.5.3.4870/src/gpre/cme.cpp >--- firebird-1.5.3.4870-orig/src/gpre/cme.cpp 2006-03-17 01:39:04.000000000 -0500 >+++ firebird-1.5.3.4870/src/gpre/cme.cpp 2006-03-17 01:32:18.000000000 -0500 >@@ -251,7 +251,7 @@ > // ** Begin date/time/timestamp support * > case nod_extract: > STUFF(blr_extract); >- switch ((KWWORDS) (int) node->nod_arg[0]) >+ switch ((KWWORDS) (int)(IPTR) node->nod_arg[1]) > { > case KW_YEAR: > STUFF(blr_extract_year); >@@ -478,7 +478,7 @@ > // ** Begin date/time/timestamp support * > case nod_extract: > { >- KWWORDS kw_word = (KWWORDS) (int) node->nod_arg[0]; >+ KWWORDS kw_word = (KWWORDS) (int)(IPTR) node->nod_arg[0]; > CME_get_dtype(node->nod_arg[1], f); > switch (f->fld_dtype) > { >diff -ur firebird-1.5.3.4870-orig/src/gpre/cob.cpp firebird-1.5.3.4870/src/gpre/cob.cpp >--- firebird-1.5.3.4870-orig/src/gpre/cob.cpp 2006-03-17 01:39:04.000000000 -0500 >+++ firebird-1.5.3.4870/src/gpre/cob.cpp 2006-03-17 01:32:18.000000000 -0500 >@@ -382,7 +382,7 @@ > static void gen_on_error (ACT); > static void gen_procedure (ACT); > static void gen_put_segment (ACT); >-static void gen_raw (UCHAR *, enum req_t, int, int); >+static void gen_raw (UCHAR *, enum req_t, int, IPTR); > static void gen_ready (ACT); > static void gen_receive (ACT, POR); > static void gen_release (ACT); >@@ -2656,7 +2656,7 @@ > > args.pat_database = (DBB) init->nod_arg[3]; > args.pat_vector1 = status_vector(action); >- args.pat_value1 = (int) init->nod_arg[2]; >+ args.pat_value1 = (IPTR) init->nod_arg[2]; > args.pat_value2 = (int) event_list->nod_count; > args.pat_string1 = ISC_EVENT_BLOCK; > args.pat_string2 = ISC_EVENT_WAIT; >@@ -2712,7 +2712,7 @@ > LLS stack_ptr; > ACT event_action; > SSHORT column; >- int ident; >+ IPTR ident; > TEXT s[64]; > TEXT *pattern1 = > "CALL \"%S2\" USING %V1, %RF%DH%RE, %VF%S4%N1L%VE, %VF%S4%N1A%VE, %VF%S4%N1B%VE"; >@@ -2730,7 +2730,7 @@ > event_init = (GPRE_NOD) event_action->act_object; > stack_name = (SYM) event_init->nod_arg[0]; > if (!strcmp(event_name->sym_string, stack_name->sym_string)) { >- ident = (int) event_init->nod_arg[2]; >+ ident = (IPTR) event_init->nod_arg[2]; > database = (DBB) event_init->nod_arg[3]; > } > } >@@ -3845,7 +3845,7 @@ > > static void gen_raw( > UCHAR * blr, >- enum req_t request_type, int request_length, int ident) >+ enum req_t request_type, int request_length, IPTR ident) > { > UCHAR *c; > TEXT s[256]; >@@ -4193,7 +4193,7 @@ > printa(names[COLUMN_0], FALSE, "01 %s%d.", > names[ISC_], blob->blb_bpb_ident); > gen_raw(blob->blb_bpb, request->req_type, blob->blb_bpb_length, >- (int) request); >+ (IPTR) request); > printa(names[COMMENT], FALSE, " "); > } > #ifdef PYXIS >@@ -4703,7 +4703,7 @@ > static void gen_type( ACT action) > { > >- printa(names[COLUMN], TRUE, "%ld", action->act_object); >+ printa(names[COLUMN], TRUE, "%ld", (IPTR) action->act_object); > } > > >diff -ur firebird-1.5.3.4870-orig/src/gpre/pat.h firebird-1.5.3.4870/src/gpre/pat.h >--- firebird-1.5.3.4870-orig/src/gpre/pat.h 2006-03-17 01:39:04.000000000 -0500 >+++ firebird-1.5.3.4870/src/gpre/pat.h 2006-03-17 01:32:18.000000000 -0500 >@@ -85,7 +85,7 @@ > USHORT pat_ident2; > TEXT *pat_vector1; > TEXT *pat_vector2; >- int pat_value1; >+ IPTR pat_value1; > int pat_value2; > int pat_value3; > int pat_value4; >diff -ur firebird-1.5.3.4870-orig/src/jrd/blb.cpp firebird-1.5.3.4870/src/jrd/blb.cpp >--- firebird-1.5.3.4870-orig/src/jrd/blb.cpp 2006-03-17 01:39:04.000000000 -0500 >+++ firebird-1.5.3.4870/src/jrd/blb.cpp 2006-03-17 01:32:28.000000000 -0500 >@@ -860,8 +860,8 @@ > request = tdbb->tdbb_request; > source = (BID) from_desc->dsc_address; > destination = (BID) to_desc->dsc_address; >- id = (USHORT) field->nod_arg[e_fld_id]; >- rpb = &request->req_rpb[(int) field->nod_arg[e_fld_stream]]; >+ id = (USHORT)(IPTR) field->nod_arg[e_fld_id]; >+ rpb = &request->req_rpb[(int)(IPTR) field->nod_arg[e_fld_stream]]; > relation = rpb->rpb_relation; > record = rpb->rpb_record; > >diff -ur firebird-1.5.3.4870-orig/src/jrd/cmp.cpp firebird-1.5.3.4870/src/jrd/cmp.cpp >--- firebird-1.5.3.4870-orig/src/jrd/cmp.cpp 2006-03-17 01:39:04.000000000 -0500 >+++ firebird-1.5.3.4870/src/jrd/cmp.cpp 2006-03-17 01:32:29.000000000 -0500 >@@ -958,9 +958,9 @@ > FMT format; > USHORT id; > >- id = (USHORT) node->nod_arg[e_fld_id]; >+ id = (USHORT)(IPTR) node->nod_arg[e_fld_id]; > format = >- CMP_format(tdbb, csb, (USHORT) node->nod_arg[e_fld_stream]); >+ CMP_format(tdbb, csb, (USHORT)(IPTR) node->nod_arg[e_fld_stream]); > if (id >= format->fmt_count) { > desc->dsc_dtype = dtype_null; > desc->dsc_length = 0; >@@ -983,9 +983,9 @@ > > sub = node->nod_arg[e_scl_field]; > relation = >- csb->csb_rpt[(USHORT) sub-> >+ csb->csb_rpt[(USHORT)(IPTR) sub-> > nod_arg[e_fld_stream]].csb_relation; >- id = (USHORT) sub->nod_arg[e_fld_id]; >+ id = (USHORT)(IPTR) sub->nod_arg[e_fld_id]; > field = MET_get_field(relation, id); > if (!field || !(array = field->fld_array)) > IBERROR(223); /* msg 223 argument of scalar operation must be an array */ >@@ -1661,7 +1661,7 @@ > return; > > case nod_extract: >- if ((ULONG) node->nod_arg[e_extract_part] == blr_extract_second) { >+ if ((ULONG)(IPTR) node->nod_arg[e_extract_part] == blr_extract_second) { > /* QUADDATE - SECOND returns a float, or scaled! */ > desc->dsc_dtype = dtype_long; > desc->dsc_length = sizeof(ULONG); >@@ -1720,7 +1720,7 @@ > > message = node->nod_arg[e_arg_message]; > format = (FMT) message->nod_arg[e_msg_format]; >- *desc = format->fmt_desc[(int) node->nod_arg[e_arg_number]]; >+ *desc = format->fmt_desc[(int)(IPTR) node->nod_arg[e_arg_number]]; > return; > } > >@@ -2653,8 +2653,8 @@ > !input->nod_arg[e_fld_id] && !input->nod_arg[e_fld_stream]) > --field_id; > else >- field_id = (USHORT) input->nod_arg[e_fld_id]; >- stream = (USHORT) input->nod_arg[e_fld_stream]; >+ field_id = (USHORT)(IPTR) input->nod_arg[e_fld_id]; >+ stream = (USHORT)(IPTR) input->nod_arg[e_fld_stream]; > if (remap_fld) { > JRD_REL relation; > JRD_FLD field; >@@ -2662,7 +2662,7 @@ > relation = (*csb)->csb_rpt[stream].csb_relation; > field = MET_get_field(relation, field_id); > if (field->fld_source) >- field_id = (USHORT) field->fld_source->nod_arg[e_fld_id]; >+ field_id = (USHORT)(IPTR) field->fld_source->nod_arg[e_fld_id]; > } > if (remap) > stream = remap[stream]; >@@ -2773,7 +2773,7 @@ > node->nod_type = input->nod_type; > node->nod_count = 0; > >- stream = (USHORT) input->nod_arg[e_rel_stream]; >+ stream = (USHORT)(IPTR) input->nod_arg[e_rel_stream]; > /** > Last entry in the remap contains the the original stream number. > Get that stream number so that the flags can be copied >@@ -2853,7 +2853,7 @@ > node->nod_arg[e_prc_inputs] = > copy(tdbb, csb, input->nod_arg[e_prc_inputs], remap, field_id, > node->nod_arg[e_prc_in_msg], remap_fld); >- stream = (USHORT) input->nod_arg[e_prc_stream]; >+ stream = (USHORT)(IPTR) input->nod_arg[e_prc_stream]; > new_stream = (*csb)->csb_n_stream++; > node->nod_arg[e_prc_stream] = (JRD_NOD) (SLONG) new_stream; > /* TMN: Here we should really have the following assert */ >@@ -2863,7 +2863,7 @@ > element = CMP_csb_element(csb, new_stream); > // SKIDDER: Maybe we need to check if we really found a procedure ? > element->csb_procedure = MET_lookup_procedure_id(tdbb, >- (SSHORT)node->nod_arg[e_prc_procedure],FALSE,FALSE,0); >+ (SSHORT)(IPTR)node->nod_arg[e_prc_procedure],FALSE,FALSE,0); > > (*csb)->csb_rpt[new_stream].csb_flags |= > (*csb)->csb_rpt[stream].csb_flags & csb_no_dbkey; >@@ -2876,7 +2876,7 @@ > node = PAR_make_node(tdbb, e_agg_length); > node->nod_type = input->nod_type; > node->nod_count = 0; >- stream = (USHORT) input->nod_arg[e_agg_stream]; >+ stream = (USHORT)(IPTR) input->nod_arg[e_agg_stream]; > assert(stream <= MAX_STREAMS); > new_stream = (*csb)->csb_n_stream++; > assert(new_stream <= MAX_STREAMS); >@@ -2905,7 +2905,7 @@ > node = PAR_make_node(tdbb, e_uni_length); > node->nod_type = input->nod_type; > node->nod_count = 2; >- stream = (USHORT) input->nod_arg[e_uni_stream]; >+ stream = (USHORT)(IPTR) input->nod_arg[e_uni_stream]; > new_stream = (*csb)->csb_n_stream++; > node->nod_arg[e_uni_stream] = (JRD_NOD) (SLONG) new_stream; > /* TMN: Here we should really have the following assert */ >@@ -3043,7 +3043,7 @@ > csb_repeat *tail; > JRD_REL relation; > >- stream = (USHORT) node->nod_arg[e_rel_stream]; >+ stream = (USHORT)(IPTR) node->nod_arg[e_rel_stream]; > csb->csb_rpt[stream].csb_flags |= csb_no_dbkey; > tail = &csb->csb_rpt[stream]; > if ( (relation = tail->csb_relation) ) >@@ -3271,7 +3271,7 @@ > JRD_FLD field; > UCHAR *map, local_map[MAP_LENGTH]; > >- stream = (USHORT) node->nod_arg[e_fld_stream]; >+ stream = (USHORT)(IPTR) node->nod_arg[e_fld_stream]; > > /* Look at all rse's which are lower in scope than the rse which this field > is referencing, and mark them as varying -- the rule is that if a field >@@ -3292,7 +3292,7 @@ > if (!(relation = tail->csb_relation) || > !(field = > MET_get_field(relation, >- (USHORT) node->nod_arg[e_fld_id]))) break; >+ (USHORT)(IPTR) node->nod_arg[e_fld_id]))) break; > > /* if this is a modify or store, check REFERENCES access to any foreign keys. */ > >@@ -3404,9 +3404,9 @@ > > sub = node->nod_arg[e_asgn_from]; > if (sub->nod_type == nod_field) { >- stream = (USHORT) sub->nod_arg[e_fld_stream]; >+ stream = (USHORT)(IPTR) sub->nod_arg[e_fld_stream]; > field = MET_get_field((*csb)->csb_rpt[stream].csb_relation, >- (USHORT) sub->nod_arg[e_fld_id]); >+ (USHORT)(IPTR) sub->nod_arg[e_fld_id]); > if (field) > node->nod_arg[e_asgn_missing2] = field->fld_missing_value; > } >@@ -3414,12 +3414,12 @@ > sub = node->nod_arg[e_asgn_to]; > if (sub->nod_type != nod_field) > break; >- stream = (USHORT) sub->nod_arg[e_fld_stream]; >+ stream = (USHORT)(IPTR) sub->nod_arg[e_fld_stream]; > tail = &(*csb)->csb_rpt[stream]; > if (! > (field = > MET_get_field(tail->csb_relation, >- (USHORT) sub->nod_arg[e_fld_id]))) break; >+ (USHORT)(IPTR) sub->nod_arg[e_fld_id]))) break; > if (field->fld_missing_value) { > node->nod_arg[e_asgn_missing] = field->fld_missing_value; > node->nod_count = 3; >@@ -3433,7 +3433,7 @@ > break; > > case nod_modify: >- stream = (USHORT) node->nod_arg[e_mod_new_stream]; >+ stream = (USHORT)(IPTR) node->nod_arg[e_mod_new_stream]; > tail = &(*csb)->csb_rpt[stream]; > tail->csb_flags |= csb_modify; > pass1_modify(tdbb, csb, node); >@@ -3441,13 +3441,13 @@ > /* assert(node->nod_arg [e_mod_new_stream] <= MAX_USHORT); */ > if ( (node->nod_arg[e_mod_validate] = > make_validation(tdbb, csb, >- (USHORT) node-> >+ (USHORT)(IPTR) node-> > nod_arg[e_mod_new_stream])) ) node->nod_count = > MAX(node->nod_count, (USHORT) e_mod_validate + 1); > break; > > case nod_erase: >- stream = (USHORT) node->nod_arg[e_erase_stream]; >+ stream = (USHORT)(IPTR) node->nod_arg[e_erase_stream]; > tail = &(*csb)->csb_rpt[stream]; > tail->csb_flags |= csb_erase; > pass1_erase(tdbb, csb, node); >@@ -3463,12 +3463,12 @@ > > case nod_store: > sub = node->nod_arg[e_sto_relation]; >- stream = (USHORT) sub->nod_arg[e_rel_stream]; >+ stream = (USHORT)(IPTR) sub->nod_arg[e_rel_stream]; > tail = &(*csb)->csb_rpt[stream]; > tail->csb_flags |= csb_store; > sub = pass1_store(tdbb, csb, node); > if (sub) { >- stream = (USHORT) sub->nod_arg[e_rel_stream]; >+ stream = (USHORT)(IPTR) sub->nod_arg[e_rel_stream]; > if ((!node->nod_arg[e_sto_sub_store]) && > (node->nod_arg[e_sto_validate] = > make_validation(tdbb, csb, stream))) node->nod_count = >@@ -3495,7 +3495,7 @@ > > case nod_aggregate: > assert((int)node->nod_arg[e_agg_stream] <= MAX_STREAMS); >- (*csb)->csb_rpt[(USHORT) node->nod_arg[e_agg_stream]].csb_flags |= >+ (*csb)->csb_rpt[(USHORT)(IPTR) node->nod_arg[e_agg_stream]].csb_flags |= > csb_no_dbkey; > ignore_dbkey(tdbb, *csb, (RSE) node->nod_arg[e_agg_rse], view); > node->nod_arg[e_agg_rse] = >@@ -3523,7 +3523,7 @@ > NOD_T type; > > type = node->nod_type; >- stream = (USHORT) node->nod_arg[0]; >+ stream = (USHORT)(IPTR) node->nod_arg[0]; > > if (!(*csb)->csb_rpt[stream].csb_map) > return node; >@@ -3558,7 +3558,7 @@ > break; > > case nod_cardinality: >- stream = (USHORT) node->nod_arg[e_card_stream]; >+ stream = (USHORT)(IPTR) node->nod_arg[e_card_stream]; > (*csb)->csb_rpt[stream].csb_flags |= csb_compute; > break; > >@@ -3625,7 +3625,7 @@ > /* To support views of views, loop until we hit a real relation */ > > for (;;) { >- stream = new_stream = (USHORT) node->nod_arg[e_erase_stream]; >+ stream = new_stream = (USHORT)(IPTR) node->nod_arg[e_erase_stream]; > tail = &(*csb)->csb_rpt[stream]; > tail->csb_flags |= csb_erase; > relation = (*csb)->csb_rpt[stream].csb_relation; >@@ -3693,7 +3693,7 @@ > > parent = relation; > parent_stream = stream; >- new_stream = (USHORT) source->nod_arg[e_rel_stream]; >+ new_stream = (USHORT)(IPTR) source->nod_arg[e_rel_stream]; > node->nod_arg[e_erase_stream] = (JRD_NOD) (SLONG) map[new_stream]; > } > } >@@ -3740,7 +3740,7 @@ > field = MET_get_field(relation, id); > if (field->fld_source) > new_id = >- (USHORT) (JRD_NOD) (field->fld_source)->nod_arg[e_fld_id]; >+ (USHORT)(IPTR) (JRD_NOD) (field->fld_source)->nod_arg[e_fld_id]; > else > new_id = id; > } >@@ -3802,8 +3802,8 @@ > /* To support views of views, loop until we hit a real relation */ > > for (;;) { >- stream = (USHORT) node->nod_arg[e_mod_org_stream]; >- new_stream = (USHORT) node->nod_arg[e_mod_new_stream]; >+ stream = (USHORT)(IPTR) node->nod_arg[e_mod_org_stream]; >+ new_stream = (USHORT)(IPTR) node->nod_arg[e_mod_new_stream]; > tail = &(*csb)->csb_rpt[new_stream]; > tail->csb_flags |= csb_modify; > relation = (*csb)->csb_rpt[stream].csb_relation; >@@ -3842,7 +3842,7 @@ > node->nod_count = > MAX(node->nod_count, (USHORT) e_mod_map_view + 1); > map = (*csb)->csb_rpt[stream].csb_map; >- stream = (USHORT) source->nod_arg[e_rel_stream]; >+ stream = (USHORT)(IPTR) source->nod_arg[e_rel_stream]; > stream = map[stream]; > view_stream = new_stream; > >@@ -3850,18 +3850,18 @@ > > map = > alloc_map(tdbb, csb, >- (SSHORT) node->nod_arg[e_mod_new_stream]); >+ (SSHORT)(IPTR) node->nod_arg[e_mod_new_stream]); > source = copy(tdbb, csb, source, map, 0, NULL, FALSE); > /* TMN: Here we should really have the following assert */ > /* assert(source->nod_arg [e_rel_stream] <= MAX_UCHAR); */ >- map[new_stream] = (UCHAR) source->nod_arg[e_rel_stream]; >+ map[new_stream] = (UCHAR)(IPTR) source->nod_arg[e_rel_stream]; > view_node = copy(tdbb, csb, node, map, 0, NULL, TRUE); > view_node->nod_arg[e_mod_org_stream] = (JRD_NOD) (SLONG) stream; > view_node->nod_arg[e_mod_new_stream] = > source->nod_arg[e_rel_stream]; > view_node->nod_arg[e_mod_map_view] = NULL; > node->nod_arg[e_mod_sub_mod] = view_node; >- new_stream = (USHORT) source->nod_arg[e_rel_stream]; >+ new_stream = (USHORT)(IPTR) source->nod_arg[e_rel_stream]; > view_node->nod_arg[e_mod_statement] = > pass1_expand_view(tdbb, *csb, view_stream, new_stream, TRUE); > node->nod_count = >@@ -3874,14 +3874,14 @@ > /* View passes muster -- do some translation. Start with source stream */ > > map = (*csb)->csb_rpt[stream].csb_map; >- stream = (USHORT) source->nod_arg[e_rel_stream]; >+ stream = (USHORT)(IPTR) source->nod_arg[e_rel_stream]; > node->nod_arg[e_mod_org_stream] = (JRD_NOD) (SLONG) map[stream]; > > /* Next, do update stream */ > > map = > alloc_map(tdbb, csb, >- (SSHORT) node->nod_arg[e_mod_new_stream]); >+ (SSHORT)(IPTR) node->nod_arg[e_mod_new_stream]); > source = copy(tdbb, csb, source, map, 0, NULL, FALSE); > node->nod_arg[e_mod_new_stream] = source->nod_arg[e_rel_stream]; > } >@@ -4128,7 +4128,7 @@ > > pass1(tdbb, csb, source, parent_view, view_stream, FALSE); > procedure = MET_lookup_procedure_id(tdbb, >- (SSHORT)source->nod_arg[e_prc_procedure], FALSE, FALSE, 0); >+ (SSHORT)(IPTR)source->nod_arg[e_prc_procedure], FALSE, FALSE, 0); > post_procedure_access(tdbb, *csb, procedure); > CMP_post_resource(&(*csb)->csb_resources, (BLK) procedure, > Resource::rsc_procedure, procedure->prc_id); >@@ -4160,7 +4160,7 @@ > view->rel_id); > source->nod_arg[e_rel_view] = (JRD_NOD) parent_view; > >- stream = (USHORT) source->nod_arg[e_rel_stream]; >+ stream = (USHORT)(IPTR) source->nod_arg[e_rel_stream]; > element = CMP_csb_element(csb, stream); > element->csb_view = parent_view; > /* TMN: Here we should really have the following assert */ >@@ -4175,7 +4175,7 @@ > for (vcx_ptr = &parent_view->rel_view_contexts; *vcx_ptr; > vcx_ptr = &(*vcx_ptr)->vcx_next) > if ((*vcx_ptr)->vcx_context == >- (USHORT) source->nod_arg[e_rel_context]) { >+ (USHORT)(IPTR) source->nod_arg[e_rel_context]) { > element->csb_alias = (*vcx_ptr)->vcx_context_name; > break; > } >@@ -4319,7 +4319,7 @@ > > for (;;) { > original = node->nod_arg[e_sto_relation]; >- stream = (USHORT) original->nod_arg[e_rel_stream]; >+ stream = (USHORT)(IPTR) original->nod_arg[e_rel_stream]; > tail = &(*csb)->csb_rpt[stream]; > tail->csb_flags |= csb_store; > relation = (*csb)->csb_rpt[stream].csb_relation; >@@ -4373,7 +4373,7 @@ > node->nod_arg[e_sto_relation] = > copy(tdbb, csb, source, map, 0, NULL, FALSE); > new_stream = >- (USHORT) node->nod_arg[e_sto_relation]->nod_arg[e_rel_stream]; >+ (USHORT)(IPTR) node->nod_arg[e_sto_relation]->nod_arg[e_rel_stream]; > node->nod_arg[e_sto_statement] = > pass1_expand_view(tdbb, *csb, stream, new_stream, TRUE); > node->nod_arg[e_sto_statement] = >@@ -4721,9 +4721,9 @@ > /* AB: Mark the streams involved with an UPDATE statement > active. So that the optimizer can use indices for > eventually used sub-selects. */ >- stream = (USHORT) node->nod_arg[e_mod_org_stream]; >+ stream = (USHORT)(IPTR) node->nod_arg[e_mod_org_stream]; > csb->csb_rpt[stream].csb_flags |= csb_active; >- stream = (USHORT) node->nod_arg[e_mod_new_stream]; >+ stream = (USHORT)(IPTR) node->nod_arg[e_mod_new_stream]; > csb->csb_rpt[stream].csb_flags |= csb_active; > } > >@@ -4735,9 +4735,9 @@ > > if (node->nod_type == nod_modify) { > /* AB: Remove the previous flags */ >- stream = (USHORT) node->nod_arg[e_mod_org_stream]; >+ stream = (USHORT)(IPTR) node->nod_arg[e_mod_org_stream]; > csb->csb_rpt[stream].csb_flags &= ~csb_active; >- stream = (USHORT) node->nod_arg[e_mod_new_stream]; >+ stream = (USHORT)(IPTR) node->nod_arg[e_mod_new_stream]; > csb->csb_rpt[stream].csb_flags &= ~csb_active; > } > >@@ -4836,7 +4836,7 @@ > FMT format; > fmt::fmt_desc_iterator desc; > >- stream = (USHORT) node->nod_arg[e_mod_org_stream]; >+ stream = (USHORT)(IPTR) node->nod_arg[e_mod_org_stream]; > csb->csb_rpt[stream].csb_flags |= csb_update; > format = CMP_format(tdbb, csb, stream); > desc = format->fmt_desc.begin(); >@@ -4861,13 +4861,13 @@ > break; > > case nod_erase: >- stream = (USHORT) node->nod_arg[e_erase_stream]; >+ stream = (USHORT)(IPTR) node->nod_arg[e_erase_stream]; > csb->csb_rpt[stream].csb_flags |= csb_update; > break; > > case nod_field: >- stream = (USHORT) node->nod_arg[e_fld_stream]; >- id = (USHORT) node->nod_arg[e_fld_id]; >+ stream = (USHORT)(IPTR) node->nod_arg[e_fld_stream]; >+ id = (USHORT)(IPTR) node->nod_arg[e_fld_id]; > SBM_set(tdbb, &csb->csb_rpt[stream].csb_fields, id); > if (node->nod_flags & nod_value) { > csb->csb_impure += sizeof(struct vlux); >@@ -4941,7 +4941,7 @@ > pass2_rse(tdbb, csb, (RSE) node->nod_arg[e_agg_rse]); > pass2(tdbb, csb, node->nod_arg[e_agg_map], node); > pass2(tdbb, csb, node->nod_arg[e_agg_group], node); >- stream = (USHORT) node->nod_arg[e_agg_stream]; >+ stream = (USHORT)(IPTR) node->nod_arg[e_agg_stream]; > assert(stream <= MAX_STREAMS); > process_map(tdbb, csb, node->nod_arg[e_agg_map], > &csb->csb_rpt[stream].csb_format); >@@ -5050,7 +5050,7 @@ > > node = *ptr; > if (node->nod_type == nod_relation) { >- USHORT stream = (USHORT) node->nod_arg[e_rel_stream]; >+ USHORT stream = (USHORT)(IPTR) node->nod_arg[e_rel_stream]; > csb->csb_rpt[stream].csb_flags |= csb_active; > pass2(tdbb, csb, node, (JRD_NOD) rse); > } >@@ -5058,12 +5058,12 @@ > pass2_rse(tdbb, csb, (RSE) node); > } > else if (node->nod_type == nod_procedure) { >- USHORT stream = (USHORT) node->nod_arg[e_prc_stream]; >+ USHORT stream = (USHORT)(IPTR) node->nod_arg[e_prc_stream]; > csb->csb_rpt[stream].csb_flags |= csb_active; > pass2(tdbb, csb, node, (JRD_NOD) rse); > } > else if (node->nod_type == nod_aggregate) { >- USHORT stream = (USHORT) node->nod_arg[e_agg_stream]; >+ USHORT stream = (USHORT)(IPTR) node->nod_arg[e_agg_stream]; > assert(stream <= MAX_STREAMS); > csb->csb_rpt[stream].csb_flags |= csb_active; > pass2(tdbb, csb, node, (JRD_NOD) rse); >@@ -5118,7 +5118,7 @@ > /* Make up a format block sufficiently large to hold instantiated record */ > > clauses = node->nod_arg[e_uni_clauses]; >- id = (USHORT) node->nod_arg[e_uni_stream]; >+ id = (USHORT)(IPTR) node->nod_arg[e_uni_stream]; > format = &csb->csb_rpt[id].csb_format; > > /* Process alternating rse and map blocks */ >@@ -5160,7 +5160,7 @@ > > for (ptr = rse->rse_relation, end = ptr + rse->rse_count; ptr < end; > ptr++) if ((*ptr)->nod_type == nod_relation) { >- stream = (USHORT) (*ptr)->nod_arg[e_rel_stream]; >+ stream = (USHORT)(IPTR) (*ptr)->nod_arg[e_rel_stream]; > if (!(csb->csb_rpt[stream].csb_plan)) > ERR_post(gds_no_stream_plan, gds_arg_string, > csb->csb_rpt[stream].csb_relation->rel_name, 0); >@@ -5213,7 +5213,7 @@ > > /* find the tail for the relation specified in the rse */ > >- stream = (USHORT) plan_relation_node->nod_arg[e_rel_stream]; >+ stream = (USHORT)(IPTR) plan_relation_node->nod_arg[e_rel_stream]; > tail = &csb->csb_rpt[stream]; > > /* if the plan references a view, find the real base relation >@@ -5449,15 +5449,15 @@ > ptr < end; ptr++) { > node = *ptr; > if (node->nod_type == nod_relation) { >- USHORT stream = (USHORT) node->nod_arg[e_rel_stream]; >+ USHORT stream = (USHORT)(IPTR) node->nod_arg[e_rel_stream]; > csb->csb_rpt[stream].csb_flags &= ~csb_active; > } > else if (node->nod_type == nod_procedure) { >- USHORT stream = (USHORT) node->nod_arg[e_prc_stream]; >+ USHORT stream = (USHORT)(IPTR) node->nod_arg[e_prc_stream]; > csb->csb_rpt[stream].csb_flags &= ~csb_active; > } > else if (node->nod_type == nod_aggregate) { >- USHORT stream = (USHORT) node->nod_arg[e_agg_stream]; >+ USHORT stream = (USHORT)(IPTR) node->nod_arg[e_agg_stream]; > assert(stream <= MAX_STREAMS); > csb->csb_rpt[stream].csb_flags &= ~csb_active; > } >@@ -5553,7 +5553,7 @@ > for (end = ptr + map->nod_count; ptr < end; ptr++) { > assignment = *ptr; > field = assignment->nod_arg[e_asgn_to]; >- id = (USHORT) field->nod_arg[e_fld_id]; >+ id = (USHORT)(IPTR) field->nod_arg[e_fld_id]; > if (id >= format->fmt_count) { > format->fmt_desc.resize(id + 1); > } >@@ -5689,13 +5689,13 @@ > /* for aggregates, check current rse, if not found then check > the sub-rse */ > if (sub->nod_type == nod_aggregate) { >- if ((stream == (USHORT) sub->nod_arg[e_rel_stream]) || >+ if ((stream == (USHORT)(IPTR) sub->nod_arg[e_rel_stream]) || > (stream_in_rse(stream, (RSE) sub->nod_arg[e_agg_rse]))) > return TRUE; /* do not mark as variant */ > } > > if ((sub->nod_type == nod_relation) && >- (stream == (USHORT) sub->nod_arg[e_rel_stream])) >+ (stream == (USHORT)(IPTR) sub->nod_arg[e_rel_stream])) > return TRUE; /* do not mark as variant */ > } > >diff -ur firebird-1.5.3.4870-orig/src/jrd/common.h firebird-1.5.3.4870/src/jrd/common.h >--- firebird-1.5.3.4870-orig/src/jrd/common.h 2006-03-17 01:39:04.000000000 -0500 >+++ firebird-1.5.3.4870/src/jrd/common.h 2006-03-17 01:32:29.000000000 -0500 >@@ -856,8 +856,8 @@ > > #define JRD_BUGCHK 15 /* facility code for bugcheck messages */ > #ifndef OFFSET >-#define OFFSET(struct,fld) ((int) &((struct) 0)->fld) >-#define OFFSETA(struct,fld) ((int) ((struct) 0)->fld) >+#define OFFSET(struct,fld) ((int)(IPTR) &((struct) 0)->fld) >+#define OFFSETA(struct,fld) ((int)(IPTR) ((struct) 0)->fld) > #endif > > #ifndef ODS_ALIGNMENT >diff -ur firebird-1.5.3.4870-orig/src/jrd/dpm.epp firebird-1.5.3.4870/src/jrd/dpm.epp >--- firebird-1.5.3.4870-orig/src/jrd/dpm.epp 2006-03-17 01:39:04.000000000 -0500 >+++ firebird-1.5.3.4870/src/jrd/dpm.epp 2006-03-17 01:32:29.000000000 -0500 >@@ -2119,7 +2119,7 @@ > > DEBUG if (stack) > while (*stack) >- CCH_precedence(tdbb, &rpb->rpb_window, (SLONG) LLS_POP(stack)); >+ CCH_precedence(tdbb, &rpb->rpb_window, (SLONG)(IPTR) LLS_POP(stack)); > > CCH_precedence(tdbb, &rpb->rpb_window, -rpb->rpb_transaction); > CCH_MARK(tdbb, &rpb->rpb_window); >@@ -2736,7 +2736,7 @@ > If the page need to be compressed, compress it. */ > > while (*stack) >- CCH_precedence(tdbb, &rpb->rpb_window, (SLONG) LLS_POP(stack)); >+ CCH_precedence(tdbb, &rpb->rpb_window, (SLONG)(IPTR) LLS_POP(stack)); > CCH_MARK(tdbb, &rpb->rpb_window); > i = page->dpg_count + ((slot) ? 0 : 1); > >diff -ur firebird-1.5.3.4870-orig/src/jrd/evl.cpp firebird-1.5.3.4870/src/jrd/evl.cpp >--- firebird-1.5.3.4870-orig/src/jrd/evl.cpp 2006-03-17 01:39:04.000000000 -0500 >+++ firebird-1.5.3.4870/src/jrd/evl.cpp 2006-03-17 01:32:29.000000000 -0500 >@@ -248,7 +248,7 @@ > arg_number = (int)(IPTR)node->nod_arg[e_arg_number]; > desc = &format->fmt_desc[arg_number]; > impure->vlu_desc.dsc_address = >- (UCHAR *) request + message->nod_impure + (int) desc->dsc_address; >+ (UCHAR *) request + message->nod_impure + (int)(IPTR) desc->dsc_address; > impure->vlu_desc.dsc_dtype = desc->dsc_dtype; > impure->vlu_desc.dsc_length = desc->dsc_length; > impure->vlu_desc.dsc_scale = desc->dsc_scale; >@@ -288,8 +288,8 @@ > // may happen. I checked triggers and insert/update statements. > // All seem to work fine. > record = >- request->req_rpb[(int) node->nod_arg[e_fld_stream]].rpb_record; >- EVL_field(0, record, (USHORT) node->nod_arg[e_fld_id], >+ request->req_rpb[(int)(IPTR) node->nod_arg[e_fld_stream]].rpb_record; >+ EVL_field(0, record, (USHORT)(IPTR) node->nod_arg[e_fld_id], > &impure->vlu_desc); > if (!impure->vlu_desc.dsc_address) > ERR_post(gds_read_only_field, 0); >@@ -359,7 +359,7 @@ > impure = (INV) ((SCHAR *) tdbb->tdbb_request + node->nod_impure); > SBM_reset(&impure->inv_bitmap); > desc = EVL_expr(tdbb, node->nod_arg[0]); >- id = 1 + 2 * (USHORT) node->nod_arg[1]; >+ id = 1 + 2 * (USHORT)(IPTR) node->nod_arg[1]; > numbers = desc->dsc_address; > numbers += id * sizeof(SLONG); > MOVE_FAST(numbers, &rel_dbkey, sizeof(SLONG)); >@@ -828,10 +828,10 @@ > } > message = node->nod_arg[e_arg_message]; > format = (FMT) message->nod_arg[e_msg_format]; >- desc = &format->fmt_desc[(int) node->nod_arg[e_arg_number]]; >+ desc = &format->fmt_desc[(int)(IPTR) node->nod_arg[e_arg_number]]; > > impure->vlu_desc.dsc_address = (UCHAR *) request + >- message->nod_impure + (int) desc->dsc_address; >+ message->nod_impure + (int)(IPTR) desc->dsc_address; > impure->vlu_desc.dsc_dtype = desc->dsc_dtype; > impure->vlu_desc.dsc_length = desc->dsc_length; > impure->vlu_desc.dsc_scale = desc->dsc_scale; >@@ -851,14 +851,14 @@ > case nod_field: > { > REC record = >- request->req_rpb[(int)node->nod_arg[e_fld_stream]].rpb_record; >+ request->req_rpb[(int)(IPTR)node->nod_arg[e_fld_stream]].rpb_record; > /* In order to "map a null to a default" value (in EVL_field()), > * the relation block is referenced. > * Reference: Bug 10116, 10424 > */ >- if (!EVL_field(request->req_rpb[(USHORT) node->nod_arg[e_fld_stream]].rpb_relation, >+ if (!EVL_field(request->req_rpb[(USHORT)(IPTR) node->nod_arg[e_fld_stream]].rpb_relation, > record, >- (USHORT) node->nod_arg[e_fld_id], >+ (USHORT)(IPTR) node->nod_arg[e_fld_id], > &impure->vlu_desc)) > { > request->req_flags |= req_null; >@@ -997,7 +997,7 @@ > ULONG extract_part; > > impure = (VLU) ((SCHAR *) request + node->nod_impure); >- extract_part = (ULONG) node->nod_arg[e_extract_part]; >+ extract_part = (ULONG)(IPTR) node->nod_arg[e_extract_part]; > value = EVL_expr(tdbb, node->nod_arg[e_extract_value]); > > impure->vlu_desc.dsc_dtype = dtype_short; >@@ -1173,8 +1173,8 @@ > > switch (node->nod_type) { > case nod_gen_id: /* return a 32-bit generator value */ >- impure->vlu_misc.vlu_long = (SLONG) DPM_gen_id(tdbb, >- (SLONG) >+ impure->vlu_misc.vlu_long = (SLONG)(IPTR) DPM_gen_id(tdbb, >+ (SLONG)(IPTR) > node->nod_arg > [e_gen_id], 0, > MOV_get_int64 >@@ -1189,7 +1189,7 @@ > > case nod_gen_id2: > impure->vlu_misc.vlu_int64 = DPM_gen_id(tdbb, >- (SLONG) >+ (SLONG)(IPTR) > node->nod_arg[e_gen_id], > 0, > MOV_get_int64(values[0], >@@ -1383,7 +1383,7 @@ > return FALSE; > } > >- desc->dsc_address = record->rec_data + (int) desc->dsc_address; >+ desc->dsc_address = record->rec_data + (int)(IPTR) desc->dsc_address; > > if (TEST_NULL(record, id)) { > desc->dsc_flags |= DSC_null; >@@ -1725,9 +1725,9 @@ > { > from = (*ptr)->nod_arg[e_asgn_from]; > field = (*ptr)->nod_arg[e_asgn_to]; >- id = (USHORT) field->nod_arg[e_fld_id]; >+ id = (USHORT)(IPTR) field->nod_arg[e_fld_id]; > record = >- request->req_rpb[(int) field->nod_arg[e_fld_stream]].rpb_record; >+ request->req_rpb[(int)(IPTR) field->nod_arg[e_fld_stream]].rpb_record; > impure = (VLUX) ((SCHAR *) request + from->nod_impure); > switch (from->nod_type) > { >@@ -3395,7 +3395,7 @@ > > request = tdbb->tdbb_request; > impure = (VLU) ((SCHAR *) request + node->nod_impure); >- rpb = &request->req_rpb[(int) node->nod_arg[0]]; >+ rpb = &request->req_rpb[(int)(IPTR) node->nod_arg[0]]; > relation = rpb->rpb_relation; > > /* Format dbkey as vector of relation id, record number */ >@@ -4500,7 +4500,7 @@ > > request = tdbb->tdbb_request; > impure = (VLU) ((SCHAR *) request + node->nod_impure); >- rpb = &request->req_rpb[(int) node->nod_arg[0]]; >+ rpb = &request->req_rpb[(int)(IPTR) node->nod_arg[0]]; > > /* If the current transaction has updated the record, the record version > * coming in from DSQL will have the original transaction # (or current >diff -ur firebird-1.5.3.4870-orig/src/jrd/exe.cpp firebird-1.5.3.4870/src/jrd/exe.cpp >--- firebird-1.5.3.4870-orig/src/jrd/exe.cpp 2006-03-17 01:39:04.000000000 -0500 >+++ firebird-1.5.3.4870/src/jrd/exe.cpp 2006-03-17 01:32:29.000000000 -0500 >@@ -375,8 +375,8 @@ > > if (to->nod_type == nod_field) > { >- SSHORT id = (USHORT) to->nod_arg[e_fld_id]; >- REC record = request->req_rpb[(int) to->nod_arg[e_fld_stream]].rpb_record; >+ SSHORT id = (USHORT)(IPTR) to->nod_arg[e_fld_id]; >+ REC record = request->req_rpb[(int)(IPTR) to->nod_arg[e_fld_stream]].rpb_record; > if (null) { > SET_NULL(record, id); > } else { >@@ -639,7 +639,7 @@ > message = request->req_message; > format = (FMT) message->nod_arg[e_msg_format]; > >- if (msg != (USHORT) message->nod_arg[e_msg_number]) >+ if (msg != (USHORT)(IPTR) message->nod_arg[e_msg_number]) > ERR_post(gds_req_sync, 0); > > if (length != format->fmt_length) >@@ -788,7 +788,7 @@ > for (ptr = node->nod_arg, end = ptr + node->nod_count; ptr < end; > ptr++) { > message = (*ptr)->nod_arg[e_send_message]; >- if ((USHORT) message->nod_arg[e_msg_number] == msg) { >+ if ((USHORT)(IPTR) message->nod_arg[e_msg_number] == msg) { > request->req_next = *ptr; > break; > } >@@ -798,7 +798,7 @@ > > format = (FMT) message->nod_arg[e_msg_format]; > >- if (msg != (USHORT) message->nod_arg[e_msg_number]) >+ if (msg != (USHORT)(IPTR) message->nod_arg[e_msg_number]) > ERR_post(gds_req_sync, 0); > > if (length != format->fmt_length) >@@ -1049,7 +1049,7 @@ > desc = &format->fmt_desc[n]; > if (!desc->dsc_address) > continue; >- p = record->rec_data + (SLONG) desc->dsc_address; >+ p = record->rec_data + (SLONG)(IPTR) desc->dsc_address; > if (TEST_NULL(record, n)) > { > if (length = desc->dsc_length) >@@ -1134,7 +1134,7 @@ > > request = tdbb->tdbb_request; > transaction = request->req_transaction; >- rpb = &request->req_rpb[(int) node->nod_arg[e_erase_stream]]; >+ rpb = &request->req_rpb[(int)(IPTR) node->nod_arg[e_erase_stream]]; > relation = rpb->rpb_relation; > > #ifdef PC_ENGINE >@@ -2015,7 +2015,7 @@ > case jrd_req::req_evaluate: > if (transaction != dbb->dbb_sys_trans) { > >- UCHAR operation = (UCHAR) node->nod_arg[e_sav_operation]; >+ UCHAR operation = (UCHAR)(IPTR) node->nod_arg[e_sav_operation]; > TEXT * node_savepoint_name = (TEXT*) node->nod_arg[e_sav_name]; > > // Skip the savepoint created by EXE_start >@@ -2328,7 +2328,7 @@ > break; > > case jrd_req::req_unwind: >- if ((request->req_label == (USHORT) node->nod_arg[e_lbl_label]) && >+ if ((request->req_label == (USHORT)(IPTR) node->nod_arg[e_lbl_label]) && > (request->req_flags & (req_leave | req_error_handler))) { > request->req_flags &= ~req_leave; > request->req_operation = jrd_req::req_return; >@@ -2342,7 +2342,7 @@ > case nod_leave: > request->req_flags |= req_leave; > request->req_operation = jrd_req::req_unwind; >- request->req_label = (USHORT) node->nod_arg[0]; >+ request->req_label = (USHORT)(IPTR) node->nod_arg[0]; > node = node->nod_parent; > break; > >@@ -2652,7 +2652,7 @@ > DSC *desc; > > desc = EVL_expr(tdbb, node->nod_arg[e_gen_value]); >- (void) DPM_gen_id(tdbb, (SLONG) node->nod_arg[e_gen_id], 1, >+ (void) DPM_gen_id(tdbb, (SLONG)(IPTR) node->nod_arg[e_gen_id], 1, > MOV_get_int64(desc, 0)); > request->req_operation = jrd_req::req_return; > } >@@ -2664,7 +2664,7 @@ > DSC *desc; > > desc = EVL_expr(tdbb, node->nod_arg[e_gen_value]); >- (void) DPM_gen_id(tdbb, (SLONG) node->nod_arg[e_gen_id], 1, >+ (void) DPM_gen_id(tdbb, (SLONG)(IPTR) node->nod_arg[e_gen_id], 1, > MOV_get_int64(desc, 0)); > request->req_operation = jrd_req::req_return; > } >@@ -2794,11 +2794,11 @@ > transaction = request->req_transaction; > impure = (STA) ((SCHAR *) request + node->nod_impure); > >- org_stream = (USHORT) node->nod_arg[e_mod_org_stream]; >+ org_stream = (USHORT)(IPTR) node->nod_arg[e_mod_org_stream]; > org_rpb = &request->req_rpb[org_stream]; > relation = org_rpb->rpb_relation; > >- new_stream = (USHORT) node->nod_arg[e_mod_new_stream]; >+ new_stream = (USHORT)(IPTR) node->nod_arg[e_mod_new_stream]; > new_rpb = &request->req_rpb[new_stream]; > > #ifdef PC_ENGINE >@@ -3795,7 +3795,7 @@ > JRD_REQ request = tdbb->tdbb_request; > JRD_TRA transaction = request->req_transaction; > STA impure = (STA) ((SCHAR *) request + node->nod_impure); >- SSHORT stream = (USHORT) node->nod_arg[e_sto_relation]->nod_arg[e_rel_stream]; >+ SSHORT stream = (USHORT)(IPTR) node->nod_arg[e_sto_relation]->nod_arg[e_rel_stream]; > RPB* rpb = &request->req_rpb[stream]; > JRD_REL relation = rpb->rpb_relation; > >@@ -4201,8 +4201,8 @@ > > if (node->nod_type == nod_field) > { >- stream = (USHORT) node->nod_arg[e_fld_stream]; >- id = (USHORT) node->nod_arg[e_fld_id]; >+ stream = (USHORT)(IPTR) node->nod_arg[e_fld_stream]; >+ id = (USHORT)(IPTR) node->nod_arg[e_fld_id]; > relation = request->req_rpb[stream].rpb_relation; > > if ((vector = relation->rel_fields) && >diff -ur firebird-1.5.3.4870-orig/src/jrd/ext.cpp firebird-1.5.3.4870/src/jrd/ext.cpp >--- firebird-1.5.3.4870-orig/src/jrd/ext.cpp 2006-03-17 01:39:04.000000000 -0500 >+++ firebird-1.5.3.4870/src/jrd/ext.cpp 2006-03-17 01:32:29.000000000 -0500 >@@ -266,7 +266,7 @@ > record = rpb->rpb_record; > format = record->rec_format; > >- offset = (SSHORT) format->fmt_desc[0].dsc_address; >+ offset = (SSHORT)(IPTR) format->fmt_desc[0].dsc_address; > p = record->rec_data + offset; > l = record->rec_length - offset; > >@@ -299,7 +299,7 @@ > continue; > if ( (literal = (LIT) field->fld_missing_value) ) { > desc = *desc_ptr; >- desc.dsc_address = record->rec_data + (int) desc.dsc_address; >+ desc.dsc_address = record->rec_data + (int)(IPTR) desc.dsc_address; > if (!MOV_compare(&literal->lit_desc, &desc)) > continue; > } >@@ -512,7 +512,7 @@ > desc_ptr->dsc_length && > TEST_NULL(record, i)) > { >- p = record->rec_data + (int) desc_ptr->dsc_address; >+ p = record->rec_data + (int)(IPTR) desc_ptr->dsc_address; > if ( (literal = (LIT) field->fld_missing_value) ) { > desc = *desc_ptr; > desc.dsc_address = p; >@@ -528,7 +528,7 @@ > } > } > >- offset = (USHORT) format->fmt_desc[0].dsc_address; >+ offset = (USHORT)(IPTR) format->fmt_desc[0].dsc_address; > p = record->rec_data + offset; > l = record->rec_length - offset; > >diff -ur firebird-1.5.3.4870-orig/src/jrd/gds.cpp firebird-1.5.3.4870/src/jrd/gds.cpp >--- firebird-1.5.3.4870-orig/src/jrd/gds.cpp 2006-03-17 01:39:04.000000000 -0500 >+++ firebird-1.5.3.4870/src/jrd/gds.cpp 2006-03-17 01:32:30.000000000 -0500 >@@ -2304,7 +2304,7 @@ > return result; > > if (stdio_flag) >- if (!(result = ib_fdopen((int) result, "w+"))) >+ if (!(result = ib_fdopen((int)(IPTR) result, "w+"))) > return (void *)-1; > > if (expanded_string) >diff -ur firebird-1.5.3.4870-orig/src/jrd/idx.cpp firebird-1.5.3.4870/src/jrd/idx.cpp >--- firebird-1.5.3.4870-orig/src/jrd/idx.cpp 2006-03-17 01:39:04.000000000 -0500 >+++ firebird-1.5.3.4870/src/jrd/idx.cpp 2006-03-17 01:32:30.000000000 -0500 >@@ -1055,12 +1055,12 @@ > index_number < idx->idx_foreign_primaries->count(); > index_number++) { > if (idx->idx_id != >- (UCHAR) (*idx->idx_foreign_primaries)[index_number]) continue; >+ (UCHAR)(IPTR) (*idx->idx_foreign_primaries)[index_number]) continue; > partner_relation = > MET_relation(tdbb, >- (int) (*idx->idx_foreign_relations)[index_number]); >+ (int)(IPTR) (*idx->idx_foreign_relations)[index_number]); > index_id = >- (USHORT) (*idx->idx_foreign_indexes)[index_number]; >+ (USHORT)(IPTR) (*idx->idx_foreign_indexes)[index_number]; > if ( (result = > check_partner_index(tdbb, relation, record, transaction, idx, > partner_relation, index_id)) ) >diff -ur firebird-1.5.3.4870-orig/src/jrd/inf.cpp firebird-1.5.3.4870/src/jrd/inf.cpp >--- firebird-1.5.3.4870-orig/src/jrd/inf.cpp 2006-03-17 01:39:04.000000000 -0500 >+++ firebird-1.5.3.4870/src/jrd/inf.cpp 2006-03-17 01:32:30.000000000 -0500 >@@ -972,7 +972,7 @@ > node = request->req_message; > if (item == gds_info_message_number) > length = >- INF_convert((SLONG) node->nod_arg[e_msg_number], >+ INF_convert((SLONG)(IPTR) node->nod_arg[e_msg_number], > buffer_ptr); > else { > format = (FMT) node->nod_arg[e_msg_format]; >diff -ur firebird-1.5.3.4870-orig/src/jrd/met.epp firebird-1.5.3.4870/src/jrd/met.epp >--- firebird-1.5.3.4870-orig/src/jrd/met.epp 2006-03-17 01:39:04.000000000 -0500 >+++ firebird-1.5.3.4870/src/jrd/met.epp 2006-03-17 01:32:31.000000000 -0500 >@@ -932,7 +932,7 @@ > if (desc->dsc_address) > { > format->fmt_length = >- (ULONG) desc->dsc_address + desc->dsc_length; >+ (ULONG)(IPTR) desc->dsc_address + desc->dsc_length; > break; > } > } >@@ -2133,13 +2133,13 @@ > index_number < references->frgn_reference_ids->count(); > index_number++) > { >- if (idx->idx_id == (UCHAR) (*references->frgn_reference_ids) >+ if (idx->idx_id == (UCHAR)(IPTR) (*references->frgn_reference_ids) > [index_number]) > { > idx->idx_primary_relation = >- (USHORT) (*references->frgn_relations)[index_number]; >+ (USHORT)(IPTR) (*references->frgn_relations)[index_number]; > idx->idx_primary_index = >- (UCHAR) (*references->frgn_indexes)[index_number]; >+ (UCHAR)(IPTR) (*references->frgn_indexes)[index_number]; > return TRUE; > } > } >@@ -2155,7 +2155,7 @@ > index_number < dependencies->prim_reference_ids->count(); > index_number++) > { >- if (idx->idx_id == (UCHAR) (*dependencies->prim_reference_ids) >+ if (idx->idx_id == (UCHAR)(IPTR) (*dependencies->prim_reference_ids) > [index_number]) > { > idx->idx_foreign_primaries = >@@ -3001,10 +3001,10 @@ > { > if ( (node = csb_->csb_rpt[i].csb_message) ) > { >- if ((int) node->nod_arg[e_msg_number] == 0) >+ if ((int)(IPTR) node->nod_arg[e_msg_number] == 0) > { > procedure->prc_input_msg = node; >- } else if ((int) node->nod_arg[e_msg_number] == 1) >+ } else if ((int)(IPTR) node->nod_arg[e_msg_number] == 1) > { > procedure->prc_output_msg = node; > } >@@ -4580,7 +4580,7 @@ > node = (JRD_NOD) LLS_POP(&csb->csb_dependencies); > if (!node->nod_arg[e_dep_object]) > continue; >- dpdo_type = (SSHORT) node->nod_arg[e_dep_object_type]; >+ dpdo_type = (SSHORT)(IPTR) node->nod_arg[e_dep_object_type]; > relation = NULL; > procedure = NULL; > switch (dpdo_type) { >@@ -4593,13 +4593,13 @@ > dpdo_name = (TEXT*) procedure->prc_name->str_data; > break; > case obj_exception: >- number = (SLONG) node->nod_arg [e_dep_object]; >+ number = (SLONG)(IPTR) node->nod_arg [e_dep_object]; > MET_lookup_exception (tdbb, number, name, NULL); > dpdo_name = name; > break; > /* CVC: Here I'm going to track those pesky things named generators and UDFs. */ > case obj_generator: >- number = (SLONG) node->nod_arg [e_dep_object]; >+ number = (SLONG)(IPTR) node->nod_arg [e_dep_object]; > MET_lookup_generator_id (tdbb, number, name); > dpdo_name = name; > break; >@@ -4617,7 +4617,7 @@ > { > if (field_node->nod_type == nod_field) > { >- fld_id = (SSHORT) field_node->nod_arg[0]; >+ fld_id = (SSHORT)(IPTR) field_node->nod_arg[0]; > if (relation) > { > if ( (field = MET_get_field(relation, fld_id)) ) >diff -ur firebird-1.5.3.4870-orig/src/jrd/opt.cpp firebird-1.5.3.4870/src/jrd/opt.cpp >--- firebird-1.5.3.4870-orig/src/jrd/opt.cpp 2006-03-17 01:39:04.000000000 -0500 >+++ firebird-1.5.3.4870/src/jrd/opt.cpp 2006-03-17 01:32:31.000000000 -0500 >@@ -380,7 +380,7 @@ > > if (node->nod_type != nod_rse) > { >- stream = (USHORT) node->nod_arg[STREAM_INDEX(node)]; >+ stream = (USHORT)(IPTR) node->nod_arg[STREAM_INDEX(node)]; > assert(stream <= MAX_UCHAR); > assert(beds[0] < MAX_STREAMS && beds[0] < MAX_UCHAR); > beds[++beds[0]] = (UCHAR) stream; >@@ -400,7 +400,7 @@ > (USHORT) (key_streams[0] - i)); > assert(local_streams[0] < MAX_STREAMS && local_streams[0] < MAX_UCHAR); > local_streams[++local_streams[0]] = >- (UCHAR) node->nod_arg[e_uni_stream]; >+ (UCHAR)(IPTR) node->nod_arg[e_uni_stream]; > } > else if (node->nod_type == nod_aggregate) { > assert((int)node->nod_arg[e_agg_stream] <= MAX_STREAMS); >@@ -408,13 +408,13 @@ > rsb = gen_aggregate(tdbb, opt_, node); > assert(local_streams[0] < MAX_STREAMS && local_streams[0] < MAX_UCHAR); > local_streams[++local_streams[0]] = >- (UCHAR) node->nod_arg[e_agg_stream]; >+ (UCHAR)(IPTR) node->nod_arg[e_agg_stream]; > } > else if (node->nod_type == nod_procedure) { > rsb = gen_procedure(tdbb, opt_, node); > assert(local_streams[0] < MAX_STREAMS && local_streams[0] < MAX_UCHAR); > local_streams[++local_streams[0]] = >- (UCHAR) node->nod_arg[e_prc_stream]; >+ (UCHAR)(IPTR) node->nod_arg[e_prc_stream]; > } > else if (node->nod_type == nod_rse) { > compute_rse_streams(csb, (RSE) node, beds); >@@ -895,7 +895,7 @@ > > /* Make sure we have the correct stream */ > >- if ((USHORT) dbkey->nod_arg[0] != stream) >+ if ((USHORT)(IPTR) dbkey->nod_arg[0] != stream) > return NULL; > > /* If this is a dbkey for the appropriate stream, it's invertable */ >@@ -1687,7 +1687,7 @@ > switch (node->nod_type) { > case nod_field: > >- n = (USHORT) node->nod_arg[e_fld_stream]; >+ n = (USHORT)(IPTR) node->nod_arg[e_fld_stream]; > > if (allowOnlyCurrentStream) { > if (n != stream) { >@@ -1713,7 +1713,7 @@ > > case nod_dbkey: > >- n = (USHORT) node->nod_arg[0]; >+ n = (USHORT)(IPTR) node->nod_arg[0]; > > if (allowOnlyCurrentStream) { > if (n != stream) { >@@ -1784,7 +1784,7 @@ > > for (ptr = rse->rse_relation, end = ptr + rse->rse_count; ptr < end; ptr++) { > if ((*ptr)->nod_type != nod_rse) { >- n = (USHORT) (*ptr)->nod_arg[STREAM_INDEX((*ptr))]; >+ n = (USHORT)(IPTR) (*ptr)->nod_arg[STREAM_INDEX((*ptr))]; > csb->csb_rpt[n].csb_flags |= csb_active; > } > } >@@ -1821,7 +1821,7 @@ > { > if ((*ptr)->nod_type != nod_rse) > { >- n = (USHORT) (*ptr)->nod_arg[STREAM_INDEX((*ptr))]; >+ n = (USHORT)(IPTR) (*ptr)->nod_arg[STREAM_INDEX((*ptr))]; > csb->csb_rpt[n].csb_flags &= ~csb_active; > } > } >@@ -1862,12 +1862,12 @@ > > switch (node->nod_type) { > case nod_field: >- n = (USHORT) node->nod_arg[e_fld_stream]; >+ n = (USHORT)(IPTR) node->nod_arg[e_fld_stream]; > SET_DEP_BIT(dependencies, n); > return; > > case nod_dbkey: >- n = (USHORT) node->nod_arg[0]; >+ n = (USHORT)(IPTR) node->nod_arg[0]; > SET_DEP_BIT(dependencies, n); > return; > >@@ -1923,7 +1923,7 @@ > > for (ptr = rse->rse_relation, end = ptr + rse->rse_count; ptr < end; ptr++) { > if ((*ptr)->nod_type != nod_rse) { >- n = (USHORT) (*ptr)->nod_arg[STREAM_INDEX((*ptr))]; >+ n = (USHORT)(IPTR) (*ptr)->nod_arg[STREAM_INDEX((*ptr))]; > CLEAR_DEP_BIT(dependencies, n); > } > } >@@ -1951,7 +1951,7 @@ > > if (node->nod_type == nod_relation) { > assert(streams[0] < MAX_STREAMS && streams[0] < MAX_UCHAR); >- streams[++streams[0]] = (UCHAR) node->nod_arg[e_rel_stream]; >+ streams[++streams[0]] = (UCHAR)(IPTR) node->nod_arg[e_rel_stream]; > } > else if (node->nod_type == nod_union) { > clauses = node->nod_arg[e_uni_clauses]; >@@ -1991,7 +1991,7 @@ > node = *ptr; > if (node->nod_type != nod_rse) { > assert(streams[0] < MAX_STREAMS && streams[0] < MAX_UCHAR); >- streams[++streams[0]] = (UCHAR) node->nod_arg[STREAM_INDEX(node)]; >+ streams[++streams[0]] = (UCHAR)(IPTR) node->nod_arg[STREAM_INDEX(node)]; > } > else { > compute_rse_streams(csb, (RSE) node, streams); >@@ -3289,7 +3289,7 @@ > JRD_NOD dbkey_temp, *ptr, *end; > DEV_BLKCHK(dbkey, type_nod); > if (dbkey->nod_type == nod_dbkey) { >- if ((USHORT) dbkey->nod_arg[0] == stream) >+ if ((USHORT)(IPTR) dbkey->nod_arg[0] == stream) > return dbkey; > else { > *position = *position + 1; >@@ -3550,7 +3550,7 @@ > > temp[0]++; > relation_node = plan_node->nod_arg[e_retrieve_relation]; >- temp[temp[0]] = (UCHAR) relation_node->nod_arg[e_rel_stream]; >+ temp[temp[0]] = (UCHAR)(IPTR) relation_node->nod_arg[e_rel_stream]; > } > > // just because the user specified a join does not mean that >@@ -3724,7 +3724,7 @@ > rsb->rsb_type = rsb_aggregate; > assert((int)node->nod_arg[e_agg_stream] <= MAX_STREAMS); > assert((int)node->nod_arg[e_agg_stream] <= MAX_UCHAR); >- rsb->rsb_stream = (UCHAR) node->nod_arg[e_agg_stream]; >+ rsb->rsb_stream = (UCHAR)(IPTR) node->nod_arg[e_agg_stream]; > rsb->rsb_format = csb->csb_rpt[rsb->rsb_stream].csb_format; > rsb->rsb_next = OPT_compile(tdbb, csb, rse, NULL); > rsb->rsb_arg[0] = (RSB) node; >@@ -4088,8 +4088,8 @@ > idx->idx_rpt; ptr < end; ptr++, idx_tail++) { > node = *ptr; > if (node->nod_type != nod_field >- || (USHORT) node->nod_arg[e_fld_stream] != stream >- || (USHORT) node->nod_arg[e_fld_id] != idx_tail->idx_field >+ || (USHORT)(IPTR) node->nod_arg[e_fld_stream] != stream >+ || (USHORT)(IPTR) node->nod_arg[e_fld_id] != idx_tail->idx_field > || ptr[2*sort->nod_count] /* do not use index if NULLS FIRST is used */ > #ifdef SCROLLABLE_CURSORS > ) >@@ -4249,7 +4249,7 @@ > { > stream_ptr[i]->stream_rsb = NULL; > stream_ptr[i]->stream_num = >- (USHORT) node->nod_arg[STREAM_INDEX(node)]; >+ (USHORT)(IPTR) node->nod_arg[STREAM_INDEX(node)]; > } > } > >@@ -4327,10 +4327,10 @@ > SET_TDBB(tdbb); > csb = opt->opt_csb; > procedure = MET_lookup_procedure_id(tdbb, >- (SSHORT)node->nod_arg[e_prc_procedure], FALSE, FALSE, 0); >+ (SSHORT)(IPTR)node->nod_arg[e_prc_procedure], FALSE, FALSE, 0); > rsb = FB_NEW_RPT(*tdbb->tdbb_default, RSB_PRC_count) Rsb(); > rsb->rsb_type = rsb_procedure; >- rsb->rsb_stream = (UCHAR) node->nod_arg[e_prc_stream]; >+ rsb->rsb_stream = (UCHAR)(IPTR) node->nod_arg[e_prc_stream]; > rsb->rsb_procedure = procedure; > rsb->rsb_format = procedure->prc_format; > rsb->rsb_impure = CMP_impure(csb, sizeof(struct irsb_procedure)); >@@ -4943,8 +4943,8 @@ > for (node_ptr = sort->nod_arg; node_ptr < end_node; node_ptr++) { > node = *node_ptr; > if (node->nod_type == nod_field >- && (USHORT) node->nod_arg[e_fld_stream] == *ptr >- && (USHORT) node->nod_arg[e_fld_id] == id) { >+ && (USHORT)(IPTR) node->nod_arg[e_fld_stream] == *ptr >+ && (USHORT)(IPTR) node->nod_arg[e_fld_id] == id) { > desc = &descriptor; > CMP_get_desc(tdbb, csb, node, desc); > /* International type text has a computed key */ >@@ -5041,8 +5041,8 @@ > map_item->smb_desc.dsc_address = (UCHAR *) map_length; > map_length += desc->dsc_length; > if (node->nod_type == nod_field) { >- map_item->smb_stream = (USHORT) node->nod_arg[e_fld_stream]; >- map_item->smb_field_id = (USHORT) node->nod_arg[e_fld_id]; >+ map_item->smb_stream = (USHORT)(IPTR) node->nod_arg[e_fld_stream]; >+ map_item->smb_field_id = (USHORT)(IPTR) node->nod_arg[e_fld_id]; > } > } > >@@ -5054,8 +5054,8 @@ > field has already been mentioned as a sort key, don't bother to repeat > it. */ > while (stream_stack) { >- id = (USHORT) LLS_POP(&id_stack); >- stream = (USHORT) LLS_POP(&stream_stack); >+ id = (USHORT)(IPTR) LLS_POP(&id_stack); >+ stream = (USHORT)(IPTR) LLS_POP(&stream_stack); > format = CMP_format(tdbb, csb, stream); > desc = &format->fmt_desc[id]; > if (id >= format->fmt_count || desc->dsc_length == 0) >@@ -5384,7 +5384,7 @@ > rsb = FB_NEW_RPT(*tdbb->tdbb_default, count + nstreams + 1) Rsb(); > rsb->rsb_type = rsb_union; > rsb->rsb_count = count; >- rsb->rsb_stream = (UCHAR) union_node->nod_arg[e_uni_stream]; >+ rsb->rsb_stream = (UCHAR)(IPTR) union_node->nod_arg[e_uni_stream]; > rsb->rsb_format = csb->csb_rpt[rsb->rsb_stream].csb_format; > rsb->rsb_impure = CMP_impure(csb, sizeof(struct irsb)); > rsb_ptr = rsb->rsb_arg; >@@ -5926,8 +5926,8 @@ > field = boolean->nod_arg[0]; > if (field->nod_type != nod_field) > return NULL; >- if ((USHORT) field->nod_arg[e_fld_stream] != stream || >- (USHORT) field->nod_arg[e_fld_id] != idx->idx_rpt[0].idx_field) >+ if ((USHORT)(IPTR) field->nod_arg[e_fld_stream] != stream || >+ (USHORT)(IPTR) field->nod_arg[e_fld_id] != idx->idx_rpt[0].idx_field) > return NULL; > node = make_index_node(tdbb, relation, opt->opt_csb, idx); > retrieval = (IRB) node->nod_arg[e_idx_retrieval]; >@@ -5995,8 +5995,8 @@ > return NULL; > } > >- if ((USHORT) field->nod_arg[e_fld_stream] != stream || >- (USHORT) field->nod_arg[e_fld_id] != idx->idx_rpt[0].idx_field >+ if ((USHORT)(IPTR) field->nod_arg[e_fld_stream] != stream || >+ (USHORT)(IPTR) field->nod_arg[e_fld_id] != idx->idx_rpt[0].idx_field > || !(idx->idx_rpt[0].idx_itype == idx_string > || idx->idx_rpt[0].idx_itype == idx_byte_array > || idx->idx_rpt[0].idx_itype == idx_metadata >@@ -6094,10 +6094,10 @@ > if (access_type) { > for (arg = access_type->nod_arg, end = arg + plan_count; > arg < end; arg += 3) { >- if (relation_id != (SSHORT) * arg) >+ if (relation_id != (SSHORT)(IPTR) * arg) > /* index %s cannot be used in the specified plan */ > ERR_post(gds_index_unused, gds_arg_string, *(arg + 2), 0); >- if (idx->idx_id == (USHORT) * (arg + 1)) >+ if (idx->idx_id == (USHORT)(IPTR) * (arg + 1)) > if (access_type->nod_type == nod_navigational) > idx->idx_runtime_flags |= idx_plan_navigate; > else /* nod_indices */ >@@ -6169,13 +6169,13 @@ > If left side is still not a field, give up */ > > if (match->nod_type != nod_field || >- (USHORT) match->nod_arg[e_fld_stream] != stream || >+ (USHORT)(IPTR) match->nod_arg[e_fld_stream] != stream || > !computable(opt->opt_csb, value, stream, true, false)) > { > match = value; > value = boolean->nod_arg[0]; > if (match->nod_type != nod_field || >- (USHORT) match->nod_arg[e_fld_stream] != stream || >+ (USHORT)(IPTR) match->nod_arg[e_fld_stream] != stream || > !computable(opt->opt_csb, value, stream, true, false)) > { > return 0; >@@ -6194,7 +6194,7 @@ > #ifdef EXPRESSION_INDICES > (idx->idx_expression || > #endif >- ((USHORT) match->nod_arg[e_fld_id] == idx->idx_rpt[i].idx_field) >+ ((USHORT)(IPTR) match->nod_arg[e_fld_id] == idx->idx_rpt[i].idx_field) > #ifdef EXPRESSION_INDICES > ) > #endif >@@ -6582,7 +6582,7 @@ > return FALSE; > for (streams = river->riv_streams, end = > streams + river->riv_count; streams < end; streams++) >- if ((USHORT) node->nod_arg[e_fld_stream] == *streams) >+ if ((USHORT)(IPTR) node->nod_arg[e_fld_stream] == *streams) > return TRUE; > return FALSE; > } >@@ -6779,7 +6779,7 @@ > ptr < end; ptr++) { > node = *ptr; > if (node->nod_type != nod_rse) { >- stream = (USHORT) node->nod_arg[STREAM_INDEX(node)]; >+ stream = (USHORT)(IPTR) node->nod_arg[STREAM_INDEX(node)]; > csb->csb_rpt[stream].csb_flags &= ~csb_active; > } > else >diff -ur firebird-1.5.3.4870-orig/src/jrd/par.cpp firebird-1.5.3.4870/src/jrd/par.cpp >--- firebird-1.5.3.4870-orig/src/jrd/par.cpp 2006-03-17 01:39:04.000000000 -0500 >+++ firebird-1.5.3.4870/src/jrd/par.cpp 2006-03-17 01:32:31.000000000 -0500 >@@ -2518,7 +2518,7 @@ > node->nod_arg[e_agg_rse] = parse(tdbb, csb, TYPE_RSE); > node->nod_arg[e_agg_group] = parse(tdbb, csb, OTHER); > node->nod_arg[e_agg_map] = >- par_map(tdbb, csb, (USHORT) node->nod_arg[e_agg_stream]); >+ par_map(tdbb, csb, (USHORT)(IPTR) node->nod_arg[e_agg_stream]); > break; > > case blr_group_by: >diff -ur firebird-1.5.3.4870-orig/src/jrd/rse.cpp firebird-1.5.3.4870/src/jrd/rse.cpp >--- firebird-1.5.3.4870-orig/src/jrd/rse.cpp 2006-03-17 01:39:04.000000000 -0500 >+++ firebird-1.5.3.4870/src/jrd/rse.cpp 2006-03-17 01:32:31.000000000 -0500 >@@ -730,8 +730,8 @@ > /* Initialize the record number of each stream in the union */ > > ptr = &rsb->rsb_arg[rsb->rsb_count]; >- for (end = ptr + (USHORT) * ptr; ++ptr <= end;) >- request->req_rpb[(USHORT) * ptr].rpb_number = -1; >+ for (end = ptr + (USHORT)(IPTR) * ptr; ++ptr <= end;) >+ request->req_rpb[(USHORT)(IPTR) * ptr].rpb_number = -1; > > rsb = rsb->rsb_arg[0]; > } >@@ -2914,7 +2914,7 @@ > request = tdbb->tdbb_request; > stack = (LLS) rsb->rsb_arg[streams]; > for (; stack; stack = stack->lls_next) { >- rpb = &request->req_rpb[(USHORT) stack->lls_object]; >+ rpb = &request->req_rpb[(USHORT)(IPTR) stack->lls_object]; > > /* Make sure a record block has been allocated. If there isn't > one, first find the format, then allocate the record block */ >@@ -2972,7 +2972,7 @@ > list that contains the data to send back > */ > if (IS_INTL_DATA(&item->smb_desc) && >- (USHORT) item->smb_desc.dsc_address < >+ (USHORT)(IPTR) item->smb_desc.dsc_address < > map->smb_key_length * sizeof(ULONG)) continue; > > rpb = &request->req_rpb[item->smb_stream]; >@@ -3238,7 +3238,7 @@ > the sort record, then want to sort by language dependent order */ > > if (IS_INTL_DATA(&item->smb_desc) && >- (USHORT) item->smb_desc.dsc_address < >+ (USHORT)(IPTR) item->smb_desc.dsc_address < > map->smb_key_length * sizeof(ULONG)) { > INTL_string_to_key(tdbb, INTL_INDEX_TYPE(&item->smb_desc), > from, &to, FALSE); >diff -ur firebird-1.5.3.4870-orig/src/jrd/sdl.cpp firebird-1.5.3.4870/src/jrd/sdl.cpp >--- firebird-1.5.3.4870-orig/src/jrd/sdl.cpp 2006-03-17 01:39:04.000000000 -0500 >+++ firebird-1.5.3.4870/src/jrd/sdl.cpp 2006-03-17 01:32:31.000000000 -0500 >@@ -699,7 +699,7 @@ > } > element_desc = array_desc->ads_rpt[value].ads_desc; > element_desc.dsc_address = (BLOB_PTR *) arg->sdl_arg_array + >- (SLONG) element_desc.dsc_address + >+ (SLONG)(IPTR) element_desc.dsc_address + > (array_desc->ads_element_length * subscript); > > /* Is this element within the array bounds? */ >diff -ur firebird-1.5.3.4870-orig/src/qli/command.cpp firebird-1.5.3.4870/src/qli/command.cpp >--- firebird-1.5.3.4870-orig/src/qli/command.cpp 2006-03-17 01:39:04.000000000 -0500 >+++ firebird-1.5.3.4870/src/qli/command.cpp 2006-03-17 01:32:33.000000000 -0500 >@@ -311,32 +311,32 @@ > ptr = node->syn_arg; > > for (i = 0; i < node->syn_count; i++) { >- foo = (USHORT) * ptr++; >+ foo = (USHORT)(IPTR) * ptr++; > sw = (ENUM set_t) foo; > value = *ptr++; > switch (sw) { > case set_blr: >- QLI_blr = (USHORT) value; >+ QLI_blr = (USHORT)(IPTR) value; > break; > > case set_statistics: >- QLI_statistics = (USHORT) value; >+ QLI_statistics = (USHORT)(IPTR) value; > break; > > case set_columns: >- QLI_name_columns = QLI_columns = (USHORT) value; >+ QLI_name_columns = QLI_columns = (USHORT)(IPTR) value; > break; > > case set_lines: >- QLI_lines = (USHORT) value; >+ QLI_lines = (USHORT)(IPTR) value; > break; > > case set_semi: >- QLI_semi = (USHORT) value; >+ QLI_semi = (USHORT)(IPTR) value; > break; > > case set_echo: >- QLI_echo = (USHORT) value; >+ QLI_echo = (USHORT)(IPTR) value; > break; > > case set_form: >@@ -399,7 +399,7 @@ > break; > > case set_count: >- QLI_count = (USHORT) value; >+ QLI_count = (USHORT)(IPTR) value; > break; > > case set_charset: >diff -ur firebird-1.5.3.4870-orig/src/qli/expand.cpp firebird-1.5.3.4870/src/qli/expand.cpp >--- firebird-1.5.3.4870-orig/src/qli/expand.cpp 2006-03-17 01:39:04.000000000 -0500 >+++ firebird-1.5.3.4870/src/qli/expand.cpp 2006-03-17 01:32:33.000000000 -0500 >@@ -2220,7 +2220,7 @@ > for (i = 0; i < node->nod_count; i++) { > expr = *syn_ptr++; > if (expr->syn_type == nod_position) { >- position = (USHORT) expr->syn_arg[0]; >+ position = (USHORT)(IPTR) expr->syn_arg[0]; > if (!list || !position || position > list->nod_count) > IBERROR(152); /* Msg152 invalid ORDER BY ordinal */ > item = (ITM) list->nod_arg[position - 1]; >diff -ur firebird-1.5.3.4870-orig/src/qli/meta.epp firebird-1.5.3.4870/src/qli/meta.epp >--- firebird-1.5.3.4870-orig/src/qli/meta.epp 2006-03-17 01:39:04.000000000 -0500 >+++ firebird-1.5.3.4870/src/qli/meta.epp 2006-03-17 01:32:33.000000000 -0500 >@@ -3795,7 +3795,7 @@ > RLB rlb; > > >- privileges = (USHORT) node->syn_arg[s_grant_privileges]; >+ privileges = (USHORT)(IPTR) node->syn_arg[s_grant_privileges]; > relation = (QLI_REL) node->syn_arg[s_grant_relation]; > relation->rel_database = database = setup_update(relation->rel_database); > relation_name = relation->rel_symbol->sym_string;
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 120867
:
80752
| 82338 |
93546