]> git.pld-linux.org Git - packages/Firebird.git/blame - Firebird-gcc4.patch
- fix chkconfig, rc-scripts deps
[packages/Firebird.git] / Firebird-gcc4.patch
CommitLineData
32938903
AM
1#! /bin/sh /usr/share/dpatch/dpatch-run
2## gcc4.dpatch by <Damyan Ivanov <divanov@creditreform.bg>>
3##
4## All lines beginning with `## DP:' are a description of the patch.
5## DP: Make sources compile with gcc4
6
7@DPATCH@
8diff -urNad firebird2-1.5.3.4870~/src/common/classes/alloc.h firebird2-1.5.3.4870/src/common/classes/alloc.h
9--- firebird2-1.5.3.4870~/src/common/classes/alloc.h 2006-02-01 23:07:02.000000000 +0200
10+++ firebird2-1.5.3.4870/src/common/classes/alloc.h 2006-02-01 23:07:04.000000000 +0200
11@@ -241,23 +241,29 @@
12
13 void operator delete[](void* mem) throw();
14
15+#if __GNUC__ < 4
16+#define STATIC_NEW static
17+#else
18+#define STATIC_NEW
19+#endif
20+
21 #ifdef DEBUG_GDS_ALLOC
22-static inline void* operator new(size_t s, Firebird::MemoryPool& pool, char* file, int line) {
23+STATIC_NEW inline void* operator new(size_t s, Firebird::MemoryPool& pool, char* file, int line) {
24 return pool.allocate(s, 0, file, line);
25 // return pool.calloc(s, 0, file, line);
26 }
27-static inline void* operator new[](size_t s, Firebird::MemoryPool& pool, char* file, int line) {
28+STATIC_NEW inline void* operator new[](size_t s, Firebird::MemoryPool& pool, char* file, int line) {
29 return pool.allocate(s, 0, file, line);
30 // return pool.calloc(s, 0, file, line);
31 }
32 #define FB_NEW(pool) new(pool,__FILE__,__LINE__)
33 #define FB_NEW_RPT(pool,count) new(pool,count,__FILE__,__LINE__)
34 #else
35-static inline void* operator new(size_t s, Firebird::MemoryPool& pool) {
36+STATIC_NEW inline void* operator new(size_t s, Firebird::MemoryPool& pool) {
37 return pool.allocate(s);
38 // return pool.calloc(s);
39 }
40-static inline void* operator new[](size_t s, Firebird::MemoryPool& pool) {
41+STATIC_NEW inline void* operator new[](size_t s, Firebird::MemoryPool& pool) {
42 return pool.allocate(s);
43 // return pool.calloc(s);
44 }
45diff -urNad firebird2-1.5.3.4870~/src/common/config/config.cpp firebird2-1.5.3.4870/src/common/config/config.cpp
46--- firebird2-1.5.3.4870~/src/common/config/config.cpp 2006-02-01 23:07:02.000000000 +0200
47+++ firebird2-1.5.3.4870/src/common/config/config.cpp 2006-02-01 23:07:04.000000000 +0200
48@@ -261,12 +261,12 @@
49
50 int Config::getSortMemBlockSize()
51 {
52- return (int) sysConfig.values[KEY_SORT_MEM_BLOCK_SIZE];
53+ return (int)(IPTR) sysConfig.values[KEY_SORT_MEM_BLOCK_SIZE];
54 }
55
56 int Config::getSortMemUpperLimit()
57 {
58- return (int) sysConfig.values[KEY_SORT_MEM_UPPER_LIMIT];
59+ return (int)(IPTR) sysConfig.values[KEY_SORT_MEM_UPPER_LIMIT];
60 }
61
62 bool Config::getRemoteFileOpenAbility()
63@@ -276,12 +276,12 @@
64
65 int Config::getGuardianOption()
66 {
67- return (int) sysConfig.values[KEY_GUARDIAN_OPTION];
68+ return (int)(IPTR) sysConfig.values[KEY_GUARDIAN_OPTION];
69 }
70
71 int Config::getCpuAffinityMask()
72 {
73- return (int) sysConfig.values[KEY_CPU_AFFINITY_MASK];
74+ return (int)(IPTR) sysConfig.values[KEY_CPU_AFFINITY_MASK];
75 }
76
77 bool Config::getOldParameterOrdering()
78@@ -291,7 +291,7 @@
79
80 int Config::getTcpRemoteBufferSize()
81 {
82- return (int) sysConfig.values[KEY_TCP_REMOTE_BUFFER_SIZE];
83+ return (int)(IPTR) sysConfig.values[KEY_TCP_REMOTE_BUFFER_SIZE];
84 }
85
86 bool Config::getTcpNoNagle()
87@@ -301,37 +301,37 @@
88
89 int Config::getIpcMapSize()
90 {
91- return (int) sysConfig.values[KEY_IPC_MAP_SIZE];
92+ return (int)(IPTR) sysConfig.values[KEY_IPC_MAP_SIZE];
93 }
94
95 int Config::getDefaultDbCachePages()
96 {
97- return (int) sysConfig.values[KEY_DEFAULT_DB_CACHE_PAGES];
98+ return (int)(IPTR) sysConfig.values[KEY_DEFAULT_DB_CACHE_PAGES];
99 }
100
101 int Config::getConnectionTimeout()
102 {
103- return (int) sysConfig.values[KEY_CONNECTION_TIMEOUT];
104+ return (int)(IPTR) sysConfig.values[KEY_CONNECTION_TIMEOUT];
105 }
106
107 int Config::getDummyPacketInterval()
108 {
109- return (int) sysConfig.values[KEY_DUMMY_PACKET_INTERVAL];
110+ return (int)(IPTR) sysConfig.values[KEY_DUMMY_PACKET_INTERVAL];
111 }
112
113 int Config::getLockMemSize()
114 {
115- return (int) sysConfig.values[KEY_LOCK_MEM_SIZE];
116+ return (int)(IPTR) sysConfig.values[KEY_LOCK_MEM_SIZE];
117 }
118
119 int Config::getLockSemCount()
120 {
121- return (int) sysConfig.values[KEY_LOCK_SEM_COUNT];
122+ return (int)(IPTR) sysConfig.values[KEY_LOCK_SEM_COUNT];
123 }
124
125 int Config::getLockSignal()
126 {
127- return (int) sysConfig.values[KEY_LOCK_SIGNAL];
128+ return (int)(IPTR) sysConfig.values[KEY_LOCK_SIGNAL];
129 }
130
131 bool Config::getLockGrantOrder()
132@@ -341,27 +341,27 @@
133
134 int Config::getLockHashSlots()
135 {
136- return (int) sysConfig.values[KEY_LOCK_HASH_SLOTS];
137+ return (int)(IPTR) sysConfig.values[KEY_LOCK_HASH_SLOTS];
138 }
139
140 int Config::getLockAcquireSpins()
141 {
142- return (int) sysConfig.values[KEY_LOCK_ACQUIRE_SPINS];
143+ return (int)(IPTR) sysConfig.values[KEY_LOCK_ACQUIRE_SPINS];
144 }
145
146 int Config::getEventMemSize()
147 {
148- return (int) sysConfig.values[KEY_EVENT_MEM_SIZE];
149+ return (int)(IPTR) sysConfig.values[KEY_EVENT_MEM_SIZE];
150 }
151
152 int Config::getDeadlockTimeout()
153 {
154- return (int) sysConfig.values[KEY_DEADLOCK_TIMEOUT];
155+ return (int)(IPTR) sysConfig.values[KEY_DEADLOCK_TIMEOUT];
156 }
157
158 int Config::getSolarisStallValue()
159 {
160- return (int) sysConfig.values[KEY_SOLARIS_STALL_VALUE];
161+ return (int)(IPTR) sysConfig.values[KEY_SOLARIS_STALL_VALUE];
162 }
163
164 bool Config::getTraceMemoryPools()
165@@ -371,7 +371,7 @@
166
167 int Config::getPrioritySwitchDelay()
168 {
169- int rc = (int) sysConfig.values[KEY_PRIORITY_SWITCH_DELAY];
170+ int rc = (int)(IPTR) sysConfig.values[KEY_PRIORITY_SWITCH_DELAY];
171 if (rc < 1)
172 rc = 1;
173 return rc;
174@@ -379,7 +379,7 @@
175
176 int Config::getDeadThreadsCollection()
177 {
178- int rc = (int) sysConfig.values[KEY_DEAD_THREADS_COLLECTION];
179+ int rc = (int)(IPTR) sysConfig.values[KEY_DEAD_THREADS_COLLECTION];
180 if (rc < 1)
181 rc = 1;
182 return rc;
183@@ -387,7 +387,7 @@
184
185 int Config::getPriorityBoost()
186 {
187- int rc = (int) sysConfig.values[KEY_PRIORITY_BOOST];
188+ int rc = (int)(IPTR) sysConfig.values[KEY_PRIORITY_BOOST];
189 if (rc < 1)
190 rc = 1;
191 if (rc > 1000)
192@@ -402,7 +402,7 @@
193
194 int Config::getRemoteServicePort()
195 {
196- return (int) sysConfig.values[KEY_REMOTE_SERVICE_PORT];
197+ return (int)(IPTR) sysConfig.values[KEY_REMOTE_SERVICE_PORT];
198 }
199
200 const char *Config::getRemotePipeName()
201@@ -417,17 +417,17 @@
202
203 int Config::getMaxUnflushedWrites()
204 {
205- return (int) sysConfig.values[KEY_MAX_UNFLUSHED_WRITES];
206+ return (int)(IPTR) sysConfig.values[KEY_MAX_UNFLUSHED_WRITES];
207 }
208
209 int Config::getMaxUnflushedWriteTime()
210 {
211- return (int) sysConfig.values[KEY_MAX_UNFLUSHED_WRITE_TIME];
212+ return (int)(IPTR) sysConfig.values[KEY_MAX_UNFLUSHED_WRITE_TIME];
213 }
214
215 int Config::getProcessPriorityLevel()
216 {
217- return (int) sysConfig.values[KEY_PROCESS_PRIORITY_LEVEL];
218+ return (int)(IPTR) sysConfig.values[KEY_PROCESS_PRIORITY_LEVEL];
219 }
220
221 bool Config::getCreateInternalWindow()
222@@ -443,7 +443,7 @@
223 int Config::getRemoteAuxPort()
224 {
225 #ifdef SUPERSERVER
226- return (int) sysConfig.values[KEY_REMOTE_AUX_PORT];
227+ return (int)(IPTR) sysConfig.values[KEY_REMOTE_AUX_PORT];
228 #else
229 return 0;
230 #endif
231diff -urNad firebird2-1.5.3.4870~/src/gpre/c_cxx.cpp firebird2-1.5.3.4870/src/gpre/c_cxx.cpp
232--- firebird2-1.5.3.4870~/src/gpre/c_cxx.cpp 2006-02-01 23:07:02.000000000 +0200
233+++ firebird2-1.5.3.4870/src/gpre/c_cxx.cpp 2006-02-01 23:07:04.000000000 +0200
234@@ -2184,7 +2184,7 @@
235
236 args.pat_database = (DBB) init->nod_arg[3];
237 args.pat_vector1 = status_vector(action);
238- args.pat_long1 = (int) init->nod_arg[2];
239+ args.pat_long1 = (int)(IPTR) init->nod_arg[2];
240 args.pat_value2 = (int) event_list->nod_count;
241
242 // generate call to dynamically generate event blocks
243@@ -2255,7 +2255,7 @@
244 event_init = (GPRE_NOD) event_action->act_object;
245 stack_name = (SYM) event_init->nod_arg[0];
246 if (!strcmp(event_name->sym_string, stack_name->sym_string)) {
247- ident = (int) event_init->nod_arg[2];
248+ ident = (int)(IPTR) event_init->nod_arg[2];
249 database = (DBB) event_init->nod_arg[3];
250 }
251 }
252diff -urNad firebird2-1.5.3.4870~/src/gpre/cmd.cpp firebird2-1.5.3.4870/src/gpre/cmd.cpp
253--- firebird2-1.5.3.4870~/src/gpre/cmd.cpp 2006-02-01 23:07:02.000000000 +0200
254+++ firebird2-1.5.3.4870/src/gpre/cmd.cpp 2006-02-01 23:07:04.000000000 +0200
255@@ -204,7 +204,7 @@
256
257 case ACT_drop_shadow:
258 put_numeric(request, gds_dyn_delete_shadow,
259- (SSHORT) action->act_object);
260+ (SSHORT)(IPTR) action->act_object);
261 STUFF_END;
262 break;
263
264diff -urNad firebird2-1.5.3.4870~/src/gpre/cme.cpp firebird2-1.5.3.4870/src/gpre/cme.cpp
265--- firebird2-1.5.3.4870~/src/gpre/cme.cpp 2006-02-01 23:07:02.000000000 +0200
266+++ firebird2-1.5.3.4870/src/gpre/cme.cpp 2006-02-01 23:07:04.000000000 +0200
267@@ -251,7 +251,7 @@
268 // ** Begin date/time/timestamp support *
269 case nod_extract:
270 STUFF(blr_extract);
271- switch ((KWWORDS) (int) node->nod_arg[0])
272+ switch ((KWWORDS) (int)(IPTR) node->nod_arg[1])
93913a72 273 {
32938903
AM
274 case KW_YEAR:
275 STUFF(blr_extract_year);
276@@ -478,7 +478,7 @@
277 // ** Begin date/time/timestamp support *
278 case nod_extract:
279 {
280- KWWORDS kw_word = (KWWORDS) (int) node->nod_arg[0];
281+ KWWORDS kw_word = (KWWORDS) (int)(IPTR) node->nod_arg[0];
282 CME_get_dtype(node->nod_arg[1], f);
283 switch (f->fld_dtype)
93913a72 284 {
32938903
AM
285diff -urNad firebird2-1.5.3.4870~/src/gpre/cob.cpp firebird2-1.5.3.4870/src/gpre/cob.cpp
286--- firebird2-1.5.3.4870~/src/gpre/cob.cpp 2006-02-01 23:07:02.000000000 +0200
287+++ firebird2-1.5.3.4870/src/gpre/cob.cpp 2006-02-01 23:07:04.000000000 +0200
288@@ -382,7 +382,7 @@
289 static void gen_on_error (ACT);
290 static void gen_procedure (ACT);
291 static void gen_put_segment (ACT);
292-static void gen_raw (UCHAR *, enum req_t, int, int);
293+static void gen_raw (UCHAR *, enum req_t, int, IPTR);
294 static void gen_ready (ACT);
295 static void gen_receive (ACT, POR);
296 static void gen_release (ACT);
297@@ -2656,7 +2656,7 @@
298
299 args.pat_database = (DBB) init->nod_arg[3];
300 args.pat_vector1 = status_vector(action);
301- args.pat_value1 = (int) init->nod_arg[2];
302+ args.pat_value1 = (IPTR) init->nod_arg[2];
303 args.pat_value2 = (int) event_list->nod_count;
304 args.pat_string1 = ISC_EVENT_BLOCK;
305 args.pat_string2 = ISC_EVENT_WAIT;
306@@ -2712,7 +2712,7 @@
307 LLS stack_ptr;
308 ACT event_action;
309 SSHORT column;
310- int ident;
311+ IPTR ident;
312 TEXT s[64];
313 TEXT *pattern1 =
314 "CALL \"%S2\" USING %V1, %RF%DH%RE, %VF%S4%N1L%VE, %VF%S4%N1A%VE, %VF%S4%N1B%VE";
315@@ -2730,7 +2730,7 @@
316 event_init = (GPRE_NOD) event_action->act_object;
317 stack_name = (SYM) event_init->nod_arg[0];
318 if (!strcmp(event_name->sym_string, stack_name->sym_string)) {
319- ident = (int) event_init->nod_arg[2];
320+ ident = (IPTR) event_init->nod_arg[2];
321 database = (DBB) event_init->nod_arg[3];
322 }
323 }
324@@ -3845,7 +3845,7 @@
325
326 static void gen_raw(
327 UCHAR * blr,
328- enum req_t request_type, int request_length, int ident)
329+ enum req_t request_type, int request_length, IPTR ident)
330 {
331 UCHAR *c;
332 TEXT s[256];
333@@ -4193,7 +4193,7 @@
334 printa(names[COLUMN_0], FALSE, "01 %s%d.",
335 names[ISC_], blob->blb_bpb_ident);
336 gen_raw(blob->blb_bpb, request->req_type, blob->blb_bpb_length,
337- (int) request);
338+ (IPTR) request);
339 printa(names[COMMENT], FALSE, " ");
340 }
341 #ifdef PYXIS
342@@ -4703,7 +4703,7 @@
343 static void gen_type( ACT action)
344 {
345
346- printa(names[COLUMN], TRUE, "%ld", action->act_object);
347+ printa(names[COLUMN], TRUE, "%ld", (IPTR) action->act_object);
348 }
349
350
351diff -urNad firebird2-1.5.3.4870~/src/gpre/pat.h firebird2-1.5.3.4870/src/gpre/pat.h
352--- firebird2-1.5.3.4870~/src/gpre/pat.h 2006-02-01 23:07:02.000000000 +0200
353+++ firebird2-1.5.3.4870/src/gpre/pat.h 2006-02-01 23:07:04.000000000 +0200
354@@ -85,7 +85,7 @@
355 USHORT pat_ident2;
356 TEXT *pat_vector1;
357 TEXT *pat_vector2;
358- int pat_value1;
359+ IPTR pat_value1;
360 int pat_value2;
361 int pat_value3;
362 int pat_value4;
363diff -urNad firebird2-1.5.3.4870~/src/jrd/blb.cpp firebird2-1.5.3.4870/src/jrd/blb.cpp
364--- firebird2-1.5.3.4870~/src/jrd/blb.cpp 2006-02-01 23:07:02.000000000 +0200
365+++ firebird2-1.5.3.4870/src/jrd/blb.cpp 2006-02-01 23:07:04.000000000 +0200
366@@ -860,8 +860,8 @@
93913a72
MM
367 request = tdbb->tdbb_request;
368 source = (BID) from_desc->dsc_address;
369 destination = (BID) to_desc->dsc_address;
370- id = (USHORT) field->nod_arg[e_fld_id];
32938903
AM
371- rpb = &request->req_rpb[(int) field->nod_arg[e_fld_stream]];
372+ id = (USHORT)(IPTR) field->nod_arg[e_fld_id];
373+ rpb = &request->req_rpb[(int)(IPTR) field->nod_arg[e_fld_stream]];
93913a72
MM
374 relation = rpb->rpb_relation;
375 record = rpb->rpb_record;
32938903
AM
376
377diff -urNad firebird2-1.5.3.4870~/src/jrd/cmp.cpp firebird2-1.5.3.4870/src/jrd/cmp.cpp
378--- firebird2-1.5.3.4870~/src/jrd/cmp.cpp 2006-02-01 23:07:02.000000000 +0200
379+++ firebird2-1.5.3.4870/src/jrd/cmp.cpp 2006-02-01 23:07:04.000000000 +0200
93913a72
MM
380@@ -958,9 +958,9 @@
381 FMT format;
382 USHORT id;
383
384- id = (USHORT) node->nod_arg[e_fld_id];
32938903 385+ id = (USHORT)(IPTR) node->nod_arg[e_fld_id];
93913a72
MM
386 format =
387- CMP_format(tdbb, csb, (USHORT) node->nod_arg[e_fld_stream]);
32938903 388+ CMP_format(tdbb, csb, (USHORT)(IPTR) node->nod_arg[e_fld_stream]);
93913a72
MM
389 if (id >= format->fmt_count) {
390 desc->dsc_dtype = dtype_null;
391 desc->dsc_length = 0;
392@@ -983,9 +983,9 @@
393
394 sub = node->nod_arg[e_scl_field];
395 relation =
396- csb->csb_rpt[(USHORT) sub->
32938903 397+ csb->csb_rpt[(USHORT)(IPTR) sub->
93913a72
MM
398 nod_arg[e_fld_stream]].csb_relation;
399- id = (USHORT) sub->nod_arg[e_fld_id];
32938903 400+ id = (USHORT)(IPTR) sub->nod_arg[e_fld_id];
93913a72
MM
401 field = MET_get_field(relation, id);
402 if (!field || !(array = field->fld_array))
403 IBERROR(223); /* msg 223 argument of scalar operation must be an array */
32938903
AM
404@@ -1661,7 +1661,7 @@
405 return;
406
407 case nod_extract:
408- if ((ULONG) node->nod_arg[e_extract_part] == blr_extract_second) {
409+ if ((ULONG)(IPTR) node->nod_arg[e_extract_part] == blr_extract_second) {
410 /* QUADDATE - SECOND returns a float, or scaled! */
411 desc->dsc_dtype = dtype_long;
412 desc->dsc_length = sizeof(ULONG);
413@@ -1720,7 +1720,7 @@
414
415 message = node->nod_arg[e_arg_message];
416 format = (FMT) message->nod_arg[e_msg_format];
417- *desc = format->fmt_desc[(int) node->nod_arg[e_arg_number]];
418+ *desc = format->fmt_desc[(int)(IPTR) node->nod_arg[e_arg_number]];
419 return;
420 }
421
422@@ -2653,8 +2653,8 @@
93913a72
MM
423 !input->nod_arg[e_fld_id] && !input->nod_arg[e_fld_stream])
424 --field_id;
425 else
426- field_id = (USHORT) input->nod_arg[e_fld_id];
427- stream = (USHORT) input->nod_arg[e_fld_stream];
32938903
AM
428+ field_id = (USHORT)(IPTR) input->nod_arg[e_fld_id];
429+ stream = (USHORT)(IPTR) input->nod_arg[e_fld_stream];
93913a72
MM
430 if (remap_fld) {
431 JRD_REL relation;
432 JRD_FLD field;
32938903 433@@ -2662,7 +2662,7 @@
93913a72
MM
434 relation = (*csb)->csb_rpt[stream].csb_relation;
435 field = MET_get_field(relation, field_id);
436 if (field->fld_source)
437- field_id = (USHORT) field->fld_source->nod_arg[e_fld_id];
32938903 438+ field_id = (USHORT)(IPTR) field->fld_source->nod_arg[e_fld_id];
93913a72
MM
439 }
440 if (remap)
441 stream = remap[stream];
32938903 442@@ -2773,7 +2773,7 @@
93913a72
MM
443 node->nod_type = input->nod_type;
444 node->nod_count = 0;
445
446- stream = (USHORT) input->nod_arg[e_rel_stream];
32938903 447+ stream = (USHORT)(IPTR) input->nod_arg[e_rel_stream];
93913a72
MM
448 /**
449 Last entry in the remap contains the the original stream number.
450 Get that stream number so that the flags can be copied
32938903 451@@ -2853,7 +2853,7 @@
93913a72
MM
452 node->nod_arg[e_prc_inputs] =
453 copy(tdbb, csb, input->nod_arg[e_prc_inputs], remap, field_id,
454 node->nod_arg[e_prc_in_msg], remap_fld);
455- stream = (USHORT) input->nod_arg[e_prc_stream];
32938903 456+ stream = (USHORT)(IPTR) input->nod_arg[e_prc_stream];
93913a72
MM
457 new_stream = (*csb)->csb_n_stream++;
458 node->nod_arg[e_prc_stream] = (JRD_NOD) (SLONG) new_stream;
459 /* TMN: Here we should really have the following assert */
32938903 460@@ -2863,7 +2863,7 @@
93913a72
MM
461 element = CMP_csb_element(csb, new_stream);
462 // SKIDDER: Maybe we need to check if we really found a procedure ?
463 element->csb_procedure = MET_lookup_procedure_id(tdbb,
464- (SSHORT)node->nod_arg[e_prc_procedure],FALSE,FALSE,0);
32938903 465+ (SSHORT)(IPTR)node->nod_arg[e_prc_procedure],FALSE,FALSE,0);
93913a72
MM
466
467 (*csb)->csb_rpt[new_stream].csb_flags |=
468 (*csb)->csb_rpt[stream].csb_flags & csb_no_dbkey;
32938903 469@@ -2876,7 +2876,7 @@
93913a72
MM
470 node = PAR_make_node(tdbb, e_agg_length);
471 node->nod_type = input->nod_type;
472 node->nod_count = 0;
473- stream = (USHORT) input->nod_arg[e_agg_stream];
32938903 474+ stream = (USHORT)(IPTR) input->nod_arg[e_agg_stream];
93913a72
MM
475 assert(stream <= MAX_STREAMS);
476 new_stream = (*csb)->csb_n_stream++;
477 assert(new_stream <= MAX_STREAMS);
32938903 478@@ -2905,7 +2905,7 @@
93913a72
MM
479 node = PAR_make_node(tdbb, e_uni_length);
480 node->nod_type = input->nod_type;
481 node->nod_count = 2;
482- stream = (USHORT) input->nod_arg[e_uni_stream];
32938903 483+ stream = (USHORT)(IPTR) input->nod_arg[e_uni_stream];
93913a72
MM
484 new_stream = (*csb)->csb_n_stream++;
485 node->nod_arg[e_uni_stream] = (JRD_NOD) (SLONG) new_stream;
486 /* TMN: Here we should really have the following assert */
32938903 487@@ -3043,7 +3043,7 @@
93913a72
MM
488 csb_repeat *tail;
489 JRD_REL relation;
490
491- stream = (USHORT) node->nod_arg[e_rel_stream];
32938903 492+ stream = (USHORT)(IPTR) node->nod_arg[e_rel_stream];
93913a72
MM
493 csb->csb_rpt[stream].csb_flags |= csb_no_dbkey;
494 tail = &csb->csb_rpt[stream];
495 if ( (relation = tail->csb_relation) )
32938903 496@@ -3271,7 +3271,7 @@
93913a72
MM
497 JRD_FLD field;
498 UCHAR *map, local_map[MAP_LENGTH];
499
500- stream = (USHORT) node->nod_arg[e_fld_stream];
32938903 501+ stream = (USHORT)(IPTR) node->nod_arg[e_fld_stream];
93913a72
MM
502
503 /* Look at all rse's which are lower in scope than the rse which this field
504 is referencing, and mark them as varying -- the rule is that if a field
32938903 505@@ -3292,7 +3292,7 @@
93913a72
MM
506 if (!(relation = tail->csb_relation) ||
507 !(field =
508 MET_get_field(relation,
509- (USHORT) node->nod_arg[e_fld_id]))) break;
32938903 510+ (USHORT)(IPTR) node->nod_arg[e_fld_id]))) break;
93913a72
MM
511
512 /* if this is a modify or store, check REFERENCES access to any foreign keys. */
513
32938903 514@@ -3404,9 +3404,9 @@
93913a72
MM
515
516 sub = node->nod_arg[e_asgn_from];
517 if (sub->nod_type == nod_field) {
518- stream = (USHORT) sub->nod_arg[e_fld_stream];
32938903 519+ stream = (USHORT)(IPTR) sub->nod_arg[e_fld_stream];
93913a72
MM
520 field = MET_get_field((*csb)->csb_rpt[stream].csb_relation,
521- (USHORT) sub->nod_arg[e_fld_id]);
32938903 522+ (USHORT)(IPTR) sub->nod_arg[e_fld_id]);
93913a72
MM
523 if (field)
524 node->nod_arg[e_asgn_missing2] = field->fld_missing_value;
525 }
32938903 526@@ -3414,12 +3414,12 @@
93913a72
MM
527 sub = node->nod_arg[e_asgn_to];
528 if (sub->nod_type != nod_field)
529 break;
530- stream = (USHORT) sub->nod_arg[e_fld_stream];
32938903 531+ stream = (USHORT)(IPTR) sub->nod_arg[e_fld_stream];
93913a72
MM
532 tail = &(*csb)->csb_rpt[stream];
533 if (!
534 (field =
535 MET_get_field(tail->csb_relation,
536- (USHORT) sub->nod_arg[e_fld_id]))) break;
32938903 537+ (USHORT)(IPTR) sub->nod_arg[e_fld_id]))) break;
93913a72
MM
538 if (field->fld_missing_value) {
539 node->nod_arg[e_asgn_missing] = field->fld_missing_value;
540 node->nod_count = 3;
32938903 541@@ -3433,7 +3433,7 @@
93913a72
MM
542 break;
543
544 case nod_modify:
545- stream = (USHORT) node->nod_arg[e_mod_new_stream];
32938903 546+ stream = (USHORT)(IPTR) node->nod_arg[e_mod_new_stream];
93913a72
MM
547 tail = &(*csb)->csb_rpt[stream];
548 tail->csb_flags |= csb_modify;
549 pass1_modify(tdbb, csb, node);
32938903 550@@ -3441,13 +3441,13 @@
93913a72
MM
551 /* assert(node->nod_arg [e_mod_new_stream] <= MAX_USHORT); */
552 if ( (node->nod_arg[e_mod_validate] =
553 make_validation(tdbb, csb,
554- (USHORT) node->
32938903 555+ (USHORT)(IPTR) node->
93913a72
MM
556 nod_arg[e_mod_new_stream])) ) node->nod_count =
557 MAX(node->nod_count, (USHORT) e_mod_validate + 1);
558 break;
559
560 case nod_erase:
561- stream = (USHORT) node->nod_arg[e_erase_stream];
32938903 562+ stream = (USHORT)(IPTR) node->nod_arg[e_erase_stream];
93913a72
MM
563 tail = &(*csb)->csb_rpt[stream];
564 tail->csb_flags |= csb_erase;
565 pass1_erase(tdbb, csb, node);
32938903 566@@ -3463,12 +3463,12 @@
93913a72
MM
567
568 case nod_store:
569 sub = node->nod_arg[e_sto_relation];
570- stream = (USHORT) sub->nod_arg[e_rel_stream];
32938903 571+ stream = (USHORT)(IPTR) sub->nod_arg[e_rel_stream];
93913a72
MM
572 tail = &(*csb)->csb_rpt[stream];
573 tail->csb_flags |= csb_store;
574 sub = pass1_store(tdbb, csb, node);
575 if (sub) {
576- stream = (USHORT) sub->nod_arg[e_rel_stream];
32938903 577+ stream = (USHORT)(IPTR) sub->nod_arg[e_rel_stream];
93913a72
MM
578 if ((!node->nod_arg[e_sto_sub_store]) &&
579 (node->nod_arg[e_sto_validate] =
580 make_validation(tdbb, csb, stream))) node->nod_count =
32938903 581@@ -3495,7 +3495,7 @@
93913a72
MM
582
583 case nod_aggregate:
584 assert((int)node->nod_arg[e_agg_stream] <= MAX_STREAMS);
585- (*csb)->csb_rpt[(USHORT) node->nod_arg[e_agg_stream]].csb_flags |=
32938903 586+ (*csb)->csb_rpt[(USHORT)(IPTR) node->nod_arg[e_agg_stream]].csb_flags |=
93913a72
MM
587 csb_no_dbkey;
588 ignore_dbkey(tdbb, *csb, (RSE) node->nod_arg[e_agg_rse], view);
589 node->nod_arg[e_agg_rse] =
32938903 590@@ -3523,7 +3523,7 @@
93913a72
MM
591 NOD_T type;
592
593 type = node->nod_type;
594- stream = (USHORT) node->nod_arg[0];
32938903 595+ stream = (USHORT)(IPTR) node->nod_arg[0];
93913a72
MM
596
597 if (!(*csb)->csb_rpt[stream].csb_map)
598 return node;
32938903 599@@ -3558,7 +3558,7 @@
93913a72
MM
600 break;
601
602 case nod_cardinality:
603- stream = (USHORT) node->nod_arg[e_card_stream];
32938903 604+ stream = (USHORT)(IPTR) node->nod_arg[e_card_stream];
93913a72
MM
605 (*csb)->csb_rpt[stream].csb_flags |= csb_compute;
606 break;
607
32938903 608@@ -3625,7 +3625,7 @@
93913a72
MM
609 /* To support views of views, loop until we hit a real relation */
610
611 for (;;) {
612- stream = new_stream = (USHORT) node->nod_arg[e_erase_stream];
32938903 613+ stream = new_stream = (USHORT)(IPTR) node->nod_arg[e_erase_stream];
93913a72
MM
614 tail = &(*csb)->csb_rpt[stream];
615 tail->csb_flags |= csb_erase;
616 relation = (*csb)->csb_rpt[stream].csb_relation;
32938903 617@@ -3693,7 +3693,7 @@
93913a72
MM
618
619 parent = relation;
620 parent_stream = stream;
621- new_stream = (USHORT) source->nod_arg[e_rel_stream];
32938903 622+ new_stream = (USHORT)(IPTR) source->nod_arg[e_rel_stream];
93913a72
MM
623 node->nod_arg[e_erase_stream] = (JRD_NOD) (SLONG) map[new_stream];
624 }
625 }
32938903 626@@ -3740,7 +3740,7 @@
93913a72
MM
627 field = MET_get_field(relation, id);
628 if (field->fld_source)
629 new_id =
630- (USHORT) (JRD_NOD) (field->fld_source)->nod_arg[e_fld_id];
32938903 631+ (USHORT)(IPTR) (JRD_NOD) (field->fld_source)->nod_arg[e_fld_id];
93913a72
MM
632 else
633 new_id = id;
634 }
32938903 635@@ -3802,8 +3802,8 @@
93913a72
MM
636 /* To support views of views, loop until we hit a real relation */
637
638 for (;;) {
639- stream = (USHORT) node->nod_arg[e_mod_org_stream];
640- new_stream = (USHORT) node->nod_arg[e_mod_new_stream];
32938903
AM
641+ stream = (USHORT)(IPTR) node->nod_arg[e_mod_org_stream];
642+ new_stream = (USHORT)(IPTR) node->nod_arg[e_mod_new_stream];
93913a72
MM
643 tail = &(*csb)->csb_rpt[new_stream];
644 tail->csb_flags |= csb_modify;
645 relation = (*csb)->csb_rpt[stream].csb_relation;
32938903 646@@ -3842,7 +3842,7 @@
93913a72
MM
647 node->nod_count =
648 MAX(node->nod_count, (USHORT) e_mod_map_view + 1);
649 map = (*csb)->csb_rpt[stream].csb_map;
650- stream = (USHORT) source->nod_arg[e_rel_stream];
32938903 651+ stream = (USHORT)(IPTR) source->nod_arg[e_rel_stream];
93913a72
MM
652 stream = map[stream];
653 view_stream = new_stream;
654
32938903 655@@ -3850,18 +3850,18 @@
93913a72
MM
656
657 map =
658 alloc_map(tdbb, csb,
659- (SSHORT) node->nod_arg[e_mod_new_stream]);
32938903 660+ (SSHORT)(IPTR) node->nod_arg[e_mod_new_stream]);
93913a72
MM
661 source = copy(tdbb, csb, source, map, 0, NULL, FALSE);
662 /* TMN: Here we should really have the following assert */
663 /* assert(source->nod_arg [e_rel_stream] <= MAX_UCHAR); */
664- map[new_stream] = (UCHAR) source->nod_arg[e_rel_stream];
32938903 665+ map[new_stream] = (UCHAR)(IPTR) source->nod_arg[e_rel_stream];
93913a72
MM
666 view_node = copy(tdbb, csb, node, map, 0, NULL, TRUE);
667 view_node->nod_arg[e_mod_org_stream] = (JRD_NOD) (SLONG) stream;
668 view_node->nod_arg[e_mod_new_stream] =
669 source->nod_arg[e_rel_stream];
670 view_node->nod_arg[e_mod_map_view] = NULL;
671 node->nod_arg[e_mod_sub_mod] = view_node;
672- new_stream = (USHORT) source->nod_arg[e_rel_stream];
32938903 673+ new_stream = (USHORT)(IPTR) source->nod_arg[e_rel_stream];
93913a72
MM
674 view_node->nod_arg[e_mod_statement] =
675 pass1_expand_view(tdbb, *csb, view_stream, new_stream, TRUE);
676 node->nod_count =
32938903 677@@ -3874,14 +3874,14 @@
93913a72
MM
678 /* View passes muster -- do some translation. Start with source stream */
679
680 map = (*csb)->csb_rpt[stream].csb_map;
681- stream = (USHORT) source->nod_arg[e_rel_stream];
32938903 682+ stream = (USHORT)(IPTR) source->nod_arg[e_rel_stream];
93913a72
MM
683 node->nod_arg[e_mod_org_stream] = (JRD_NOD) (SLONG) map[stream];
684
685 /* Next, do update stream */
686
687 map =
688 alloc_map(tdbb, csb,
689- (SSHORT) node->nod_arg[e_mod_new_stream]);
32938903 690+ (SSHORT)(IPTR) node->nod_arg[e_mod_new_stream]);
93913a72
MM
691 source = copy(tdbb, csb, source, map, 0, NULL, FALSE);
692 node->nod_arg[e_mod_new_stream] = source->nod_arg[e_rel_stream];
693 }
32938903 694@@ -4128,7 +4128,7 @@
93913a72
MM
695
696 pass1(tdbb, csb, source, parent_view, view_stream, FALSE);
697 procedure = MET_lookup_procedure_id(tdbb,
698- (SSHORT)source->nod_arg[e_prc_procedure], FALSE, FALSE, 0);
32938903 699+ (SSHORT)(IPTR)source->nod_arg[e_prc_procedure], FALSE, FALSE, 0);
93913a72
MM
700 post_procedure_access(tdbb, *csb, procedure);
701 CMP_post_resource(&(*csb)->csb_resources, (BLK) procedure,
702 Resource::rsc_procedure, procedure->prc_id);
32938903 703@@ -4160,7 +4160,7 @@
93913a72
MM
704 view->rel_id);
705 source->nod_arg[e_rel_view] = (JRD_NOD) parent_view;
706
707- stream = (USHORT) source->nod_arg[e_rel_stream];
32938903 708+ stream = (USHORT)(IPTR) source->nod_arg[e_rel_stream];
93913a72
MM
709 element = CMP_csb_element(csb, stream);
710 element->csb_view = parent_view;
711 /* TMN: Here we should really have the following assert */
32938903 712@@ -4175,7 +4175,7 @@
93913a72
MM
713 for (vcx_ptr = &parent_view->rel_view_contexts; *vcx_ptr;
714 vcx_ptr = &(*vcx_ptr)->vcx_next)
715 if ((*vcx_ptr)->vcx_context ==
716- (USHORT) source->nod_arg[e_rel_context]) {
32938903 717+ (USHORT)(IPTR) source->nod_arg[e_rel_context]) {
93913a72
MM
718 element->csb_alias = (*vcx_ptr)->vcx_context_name;
719 break;
720 }
32938903 721@@ -4319,7 +4319,7 @@
93913a72
MM
722
723 for (;;) {
724 original = node->nod_arg[e_sto_relation];
725- stream = (USHORT) original->nod_arg[e_rel_stream];
32938903 726+ stream = (USHORT)(IPTR) original->nod_arg[e_rel_stream];
93913a72
MM
727 tail = &(*csb)->csb_rpt[stream];
728 tail->csb_flags |= csb_store;
729 relation = (*csb)->csb_rpt[stream].csb_relation;
32938903 730@@ -4373,7 +4373,7 @@
93913a72
MM
731 node->nod_arg[e_sto_relation] =
732 copy(tdbb, csb, source, map, 0, NULL, FALSE);
733 new_stream =
734- (USHORT) node->nod_arg[e_sto_relation]->nod_arg[e_rel_stream];
32938903 735+ (USHORT)(IPTR) node->nod_arg[e_sto_relation]->nod_arg[e_rel_stream];
93913a72
MM
736 node->nod_arg[e_sto_statement] =
737 pass1_expand_view(tdbb, *csb, stream, new_stream, TRUE);
738 node->nod_arg[e_sto_statement] =
32938903 739@@ -4721,9 +4721,9 @@
93913a72
MM
740 /* AB: Mark the streams involved with an UPDATE statement
741 active. So that the optimizer can use indices for
742 eventually used sub-selects. */
743- stream = (USHORT) node->nod_arg[e_mod_org_stream];
32938903 744+ stream = (USHORT)(IPTR) node->nod_arg[e_mod_org_stream];
93913a72
MM
745 csb->csb_rpt[stream].csb_flags |= csb_active;
746- stream = (USHORT) node->nod_arg[e_mod_new_stream];
32938903 747+ stream = (USHORT)(IPTR) node->nod_arg[e_mod_new_stream];
93913a72
MM
748 csb->csb_rpt[stream].csb_flags |= csb_active;
749 }
750
32938903 751@@ -4735,9 +4735,9 @@
93913a72
MM
752
753 if (node->nod_type == nod_modify) {
754 /* AB: Remove the previous flags */
755- stream = (USHORT) node->nod_arg[e_mod_org_stream];
32938903 756+ stream = (USHORT)(IPTR) node->nod_arg[e_mod_org_stream];
93913a72
MM
757 csb->csb_rpt[stream].csb_flags &= ~csb_active;
758- stream = (USHORT) node->nod_arg[e_mod_new_stream];
32938903 759+ stream = (USHORT)(IPTR) node->nod_arg[e_mod_new_stream];
93913a72
MM
760 csb->csb_rpt[stream].csb_flags &= ~csb_active;
761 }
762
32938903 763@@ -4836,7 +4836,7 @@
93913a72
MM
764 FMT format;
765 fmt::fmt_desc_iterator desc;
766
767- stream = (USHORT) node->nod_arg[e_mod_org_stream];
32938903 768+ stream = (USHORT)(IPTR) node->nod_arg[e_mod_org_stream];
93913a72
MM
769 csb->csb_rpt[stream].csb_flags |= csb_update;
770 format = CMP_format(tdbb, csb, stream);
771 desc = format->fmt_desc.begin();
32938903 772@@ -4861,13 +4861,13 @@
93913a72
MM
773 break;
774
775 case nod_erase:
776- stream = (USHORT) node->nod_arg[e_erase_stream];
32938903 777+ stream = (USHORT)(IPTR) node->nod_arg[e_erase_stream];
93913a72
MM
778 csb->csb_rpt[stream].csb_flags |= csb_update;
779 break;
780
781 case nod_field:
782- stream = (USHORT) node->nod_arg[e_fld_stream];
783- id = (USHORT) node->nod_arg[e_fld_id];
32938903
AM
784+ stream = (USHORT)(IPTR) node->nod_arg[e_fld_stream];
785+ id = (USHORT)(IPTR) node->nod_arg[e_fld_id];
93913a72
MM
786 SBM_set(tdbb, &csb->csb_rpt[stream].csb_fields, id);
787 if (node->nod_flags & nod_value) {
788 csb->csb_impure += sizeof(struct vlux);
32938903 789@@ -4941,7 +4941,7 @@
93913a72
MM
790 pass2_rse(tdbb, csb, (RSE) node->nod_arg[e_agg_rse]);
791 pass2(tdbb, csb, node->nod_arg[e_agg_map], node);
792 pass2(tdbb, csb, node->nod_arg[e_agg_group], node);
793- stream = (USHORT) node->nod_arg[e_agg_stream];
32938903 794+ stream = (USHORT)(IPTR) node->nod_arg[e_agg_stream];
93913a72
MM
795 assert(stream <= MAX_STREAMS);
796 process_map(tdbb, csb, node->nod_arg[e_agg_map],
797 &csb->csb_rpt[stream].csb_format);
32938903 798@@ -5050,7 +5050,7 @@
93913a72
MM
799
800 node = *ptr;
801 if (node->nod_type == nod_relation) {
802- USHORT stream = (USHORT) node->nod_arg[e_rel_stream];
32938903 803+ USHORT stream = (USHORT)(IPTR) node->nod_arg[e_rel_stream];
93913a72
MM
804 csb->csb_rpt[stream].csb_flags |= csb_active;
805 pass2(tdbb, csb, node, (JRD_NOD) rse);
806 }
32938903 807@@ -5058,12 +5058,12 @@
93913a72
MM
808 pass2_rse(tdbb, csb, (RSE) node);
809 }
810 else if (node->nod_type == nod_procedure) {
811- USHORT stream = (USHORT) node->nod_arg[e_prc_stream];
32938903 812+ USHORT stream = (USHORT)(IPTR) node->nod_arg[e_prc_stream];
93913a72
MM
813 csb->csb_rpt[stream].csb_flags |= csb_active;
814 pass2(tdbb, csb, node, (JRD_NOD) rse);
815 }
816 else if (node->nod_type == nod_aggregate) {
817- USHORT stream = (USHORT) node->nod_arg[e_agg_stream];
32938903 818+ USHORT stream = (USHORT)(IPTR) node->nod_arg[e_agg_stream];
93913a72
MM
819 assert(stream <= MAX_STREAMS);
820 csb->csb_rpt[stream].csb_flags |= csb_active;
821 pass2(tdbb, csb, node, (JRD_NOD) rse);
32938903 822@@ -5118,7 +5118,7 @@
93913a72
MM
823 /* Make up a format block sufficiently large to hold instantiated record */
824
825 clauses = node->nod_arg[e_uni_clauses];
826- id = (USHORT) node->nod_arg[e_uni_stream];
32938903 827+ id = (USHORT)(IPTR) node->nod_arg[e_uni_stream];
93913a72
MM
828 format = &csb->csb_rpt[id].csb_format;
829
830 /* Process alternating rse and map blocks */
32938903 831@@ -5160,7 +5160,7 @@
93913a72
MM
832
833 for (ptr = rse->rse_relation, end = ptr + rse->rse_count; ptr < end;
834 ptr++) if ((*ptr)->nod_type == nod_relation) {
835- stream = (USHORT) (*ptr)->nod_arg[e_rel_stream];
32938903 836+ stream = (USHORT)(IPTR) (*ptr)->nod_arg[e_rel_stream];
93913a72
MM
837 if (!(csb->csb_rpt[stream].csb_plan))
838 ERR_post(gds_no_stream_plan, gds_arg_string,
839 csb->csb_rpt[stream].csb_relation->rel_name, 0);
32938903 840@@ -5213,7 +5213,7 @@
93913a72
MM
841
842 /* find the tail for the relation specified in the rse */
843
844- stream = (USHORT) plan_relation_node->nod_arg[e_rel_stream];
32938903 845+ stream = (USHORT)(IPTR) plan_relation_node->nod_arg[e_rel_stream];
93913a72
MM
846 tail = &csb->csb_rpt[stream];
847
848 /* if the plan references a view, find the real base relation
32938903 849@@ -5449,15 +5449,15 @@
93913a72
MM
850 ptr < end; ptr++) {
851 node = *ptr;
852 if (node->nod_type == nod_relation) {
853- USHORT stream = (USHORT) node->nod_arg[e_rel_stream];
32938903 854+ USHORT stream = (USHORT)(IPTR) node->nod_arg[e_rel_stream];
93913a72
MM
855 csb->csb_rpt[stream].csb_flags &= ~csb_active;
856 }
857 else if (node->nod_type == nod_procedure) {
858- USHORT stream = (USHORT) node->nod_arg[e_prc_stream];
32938903 859+ USHORT stream = (USHORT)(IPTR) node->nod_arg[e_prc_stream];
93913a72
MM
860 csb->csb_rpt[stream].csb_flags &= ~csb_active;
861 }
862 else if (node->nod_type == nod_aggregate) {
863- USHORT stream = (USHORT) node->nod_arg[e_agg_stream];
32938903 864+ USHORT stream = (USHORT)(IPTR) node->nod_arg[e_agg_stream];
93913a72
MM
865 assert(stream <= MAX_STREAMS);
866 csb->csb_rpt[stream].csb_flags &= ~csb_active;
867 }
32938903 868@@ -5553,7 +5553,7 @@
93913a72
MM
869 for (end = ptr + map->nod_count; ptr < end; ptr++) {
870 assignment = *ptr;
871 field = assignment->nod_arg[e_asgn_to];
872- id = (USHORT) field->nod_arg[e_fld_id];
32938903 873+ id = (USHORT)(IPTR) field->nod_arg[e_fld_id];
93913a72
MM
874 if (id >= format->fmt_count) {
875 format->fmt_desc.resize(id + 1);
876 }
32938903 877@@ -5689,13 +5689,13 @@
93913a72
MM
878 /* for aggregates, check current rse, if not found then check
879 the sub-rse */
880 if (sub->nod_type == nod_aggregate) {
881- if ((stream == (USHORT) sub->nod_arg[e_rel_stream]) ||
32938903 882+ if ((stream == (USHORT)(IPTR) sub->nod_arg[e_rel_stream]) ||
93913a72
MM
883 (stream_in_rse(stream, (RSE) sub->nod_arg[e_agg_rse])))
884 return TRUE; /* do not mark as variant */
885 }
886
887 if ((sub->nod_type == nod_relation) &&
888- (stream == (USHORT) sub->nod_arg[e_rel_stream]))
32938903 889+ (stream == (USHORT)(IPTR) sub->nod_arg[e_rel_stream]))
93913a72
MM
890 return TRUE; /* do not mark as variant */
891 }
892
32938903
AM
893diff -urNad firebird2-1.5.3.4870~/src/jrd/common.h firebird2-1.5.3.4870/src/jrd/common.h
894--- firebird2-1.5.3.4870~/src/jrd/common.h 2006-02-01 23:07:02.000000000 +0200
895+++ firebird2-1.5.3.4870/src/jrd/common.h 2006-02-01 23:07:04.000000000 +0200
896@@ -856,8 +856,8 @@
897
898 #define JRD_BUGCHK 15 /* facility code for bugcheck messages */
899 #ifndef OFFSET
900-#define OFFSET(struct,fld) ((int) &((struct) 0)->fld)
901-#define OFFSETA(struct,fld) ((int) ((struct) 0)->fld)
902+#define OFFSET(struct,fld) ((int)(IPTR) &((struct) 0)->fld)
903+#define OFFSETA(struct,fld) ((int)(IPTR) ((struct) 0)->fld)
904 #endif
905
906 #ifndef ODS_ALIGNMENT
907diff -urNad firebird2-1.5.3.4870~/src/jrd/dpm.epp firebird2-1.5.3.4870/src/jrd/dpm.epp
908--- firebird2-1.5.3.4870~/src/jrd/dpm.epp 2006-02-01 23:07:02.000000000 +0200
909+++ firebird2-1.5.3.4870/src/jrd/dpm.epp 2006-02-01 23:07:04.000000000 +0200
910@@ -2119,7 +2119,7 @@
911
912 DEBUG if (stack)
913 while (*stack)
914- CCH_precedence(tdbb, &rpb->rpb_window, (SLONG) LLS_POP(stack));
915+ CCH_precedence(tdbb, &rpb->rpb_window, (SLONG)(IPTR) LLS_POP(stack));
916
917 CCH_precedence(tdbb, &rpb->rpb_window, -rpb->rpb_transaction);
918 CCH_MARK(tdbb, &rpb->rpb_window);
919@@ -2736,7 +2736,7 @@
920 If the page need to be compressed, compress it. */
921
922 while (*stack)
923- CCH_precedence(tdbb, &rpb->rpb_window, (SLONG) LLS_POP(stack));
924+ CCH_precedence(tdbb, &rpb->rpb_window, (SLONG)(IPTR) LLS_POP(stack));
925 CCH_MARK(tdbb, &rpb->rpb_window);
926 i = page->dpg_count + ((slot) ? 0 : 1);
927
928diff -urNad firebird2-1.5.3.4870~/src/jrd/evl.cpp firebird2-1.5.3.4870/src/jrd/evl.cpp
929--- firebird2-1.5.3.4870~/src/jrd/evl.cpp 2006-02-01 23:07:02.000000000 +0200
930+++ firebird2-1.5.3.4870/src/jrd/evl.cpp 2006-02-01 23:07:04.000000000 +0200
931@@ -248,7 +248,7 @@
932 arg_number = (int)(IPTR)node->nod_arg[e_arg_number];
933 desc = &format->fmt_desc[arg_number];
934 impure->vlu_desc.dsc_address =
935- (UCHAR *) request + message->nod_impure + (int) desc->dsc_address;
936+ (UCHAR *) request + message->nod_impure + (int)(IPTR) desc->dsc_address;
937 impure->vlu_desc.dsc_dtype = desc->dsc_dtype;
938 impure->vlu_desc.dsc_length = desc->dsc_length;
939 impure->vlu_desc.dsc_scale = desc->dsc_scale;
940@@ -288,8 +288,8 @@
941 // may happen. I checked triggers and insert/update statements.
0d54301e
JB
942 // All seem to work fine.
943 record =
32938903 944- request->req_rpb[(int) node->nod_arg[e_fld_stream]].rpb_record;
0d54301e 945- EVL_field(0, record, (USHORT) node->nod_arg[e_fld_id],
32938903
AM
946+ request->req_rpb[(int)(IPTR) node->nod_arg[e_fld_stream]].rpb_record;
947+ EVL_field(0, record, (USHORT)(IPTR) node->nod_arg[e_fld_id],
0d54301e
JB
948 &impure->vlu_desc);
949 if (!impure->vlu_desc.dsc_address)
950 ERR_post(gds_read_only_field, 0);
951@@ -359,7 +359,7 @@
952 impure = (INV) ((SCHAR *) tdbb->tdbb_request + node->nod_impure);
953 SBM_reset(&impure->inv_bitmap);
954 desc = EVL_expr(tdbb, node->nod_arg[0]);
955- id = 1 + 2 * (USHORT) node->nod_arg[1];
32938903 956+ id = 1 + 2 * (USHORT)(IPTR) node->nod_arg[1];
0d54301e
JB
957 numbers = desc->dsc_address;
958 numbers += id * sizeof(SLONG);
959 MOVE_FAST(numbers, &rel_dbkey, sizeof(SLONG));
32938903
AM
960@@ -828,10 +828,10 @@
961 }
962 message = node->nod_arg[e_arg_message];
963 format = (FMT) message->nod_arg[e_msg_format];
964- desc = &format->fmt_desc[(int) node->nod_arg[e_arg_number]];
965+ desc = &format->fmt_desc[(int)(IPTR) node->nod_arg[e_arg_number]];
966
967 impure->vlu_desc.dsc_address = (UCHAR *) request +
968- message->nod_impure + (int) desc->dsc_address;
969+ message->nod_impure + (int)(IPTR) desc->dsc_address;
970 impure->vlu_desc.dsc_dtype = desc->dsc_dtype;
971 impure->vlu_desc.dsc_length = desc->dsc_length;
972 impure->vlu_desc.dsc_scale = desc->dsc_scale;
973@@ -851,14 +851,14 @@
974 case nod_field:
975 {
976 REC record =
977- request->req_rpb[(int)node->nod_arg[e_fld_stream]].rpb_record;
978+ request->req_rpb[(int)(IPTR)node->nod_arg[e_fld_stream]].rpb_record;
979 /* In order to "map a null to a default" value (in EVL_field()),
0d54301e
JB
980 * the relation block is referenced.
981 * Reference: Bug 10116, 10424
982 */
983- if (!EVL_field(request->req_rpb[(USHORT) node->nod_arg[e_fld_stream]].rpb_relation,
32938903 984+ if (!EVL_field(request->req_rpb[(USHORT)(IPTR) node->nod_arg[e_fld_stream]].rpb_relation,
0d54301e
JB
985 record,
986- (USHORT) node->nod_arg[e_fld_id],
32938903 987+ (USHORT)(IPTR) node->nod_arg[e_fld_id],
0d54301e
JB
988 &impure->vlu_desc))
989 {
990 request->req_flags |= req_null;
32938903
AM
991@@ -997,7 +997,7 @@
992 ULONG extract_part;
993
994 impure = (VLU) ((SCHAR *) request + node->nod_impure);
995- extract_part = (ULONG) node->nod_arg[e_extract_part];
996+ extract_part = (ULONG)(IPTR) node->nod_arg[e_extract_part];
997 value = EVL_expr(tdbb, node->nod_arg[e_extract_value]);
998
999 impure->vlu_desc.dsc_dtype = dtype_short;
1000@@ -1173,8 +1173,8 @@
1001
1002 switch (node->nod_type) {
1003 case nod_gen_id: /* return a 32-bit generator value */
1004- impure->vlu_misc.vlu_long = (SLONG) DPM_gen_id(tdbb,
1005- (SLONG)
1006+ impure->vlu_misc.vlu_long = (SLONG)(IPTR) DPM_gen_id(tdbb,
1007+ (SLONG)(IPTR)
1008 node->nod_arg
1009 [e_gen_id], 0,
1010 MOV_get_int64
1011@@ -1189,7 +1189,7 @@
1012
1013 case nod_gen_id2:
1014 impure->vlu_misc.vlu_int64 = DPM_gen_id(tdbb,
1015- (SLONG)
1016+ (SLONG)(IPTR)
1017 node->nod_arg[e_gen_id],
1018 0,
1019 MOV_get_int64(values[0],
1020@@ -1383,7 +1383,7 @@
1021 return FALSE;
1022 }
1023
1024- desc->dsc_address = record->rec_data + (int) desc->dsc_address;
1025+ desc->dsc_address = record->rec_data + (int)(IPTR) desc->dsc_address;
1026
1027 if (TEST_NULL(record, id)) {
1028 desc->dsc_flags |= DSC_null;
1029@@ -1725,9 +1725,9 @@
0d54301e
JB
1030 {
1031 from = (*ptr)->nod_arg[e_asgn_from];
1032 field = (*ptr)->nod_arg[e_asgn_to];
1033- id = (USHORT) field->nod_arg[e_fld_id];
32938903 1034+ id = (USHORT)(IPTR) field->nod_arg[e_fld_id];
0d54301e 1035 record =
32938903
AM
1036- request->req_rpb[(int) field->nod_arg[e_fld_stream]].rpb_record;
1037+ request->req_rpb[(int)(IPTR) field->nod_arg[e_fld_stream]].rpb_record;
0d54301e 1038 impure = (VLUX) ((SCHAR *) request + from->nod_impure);
32938903
AM
1039 switch (from->nod_type)
1040 {
1041@@ -3395,7 +3395,7 @@
1042
1043 request = tdbb->tdbb_request;
1044 impure = (VLU) ((SCHAR *) request + node->nod_impure);
1045- rpb = &request->req_rpb[(int) node->nod_arg[0]];
1046+ rpb = &request->req_rpb[(int)(IPTR) node->nod_arg[0]];
1047 relation = rpb->rpb_relation;
1048
1049 /* Format dbkey as vector of relation id, record number */
1050@@ -4500,7 +4500,7 @@
1051
1052 request = tdbb->tdbb_request;
1053 impure = (VLU) ((SCHAR *) request + node->nod_impure);
1054- rpb = &request->req_rpb[(int) node->nod_arg[0]];
1055+ rpb = &request->req_rpb[(int)(IPTR) node->nod_arg[0]];
1056
1057 /* If the current transaction has updated the record, the record version
1058 * coming in from DSQL will have the original transaction # (or current
1059diff -urNad firebird2-1.5.3.4870~/src/jrd/exe.cpp firebird2-1.5.3.4870/src/jrd/exe.cpp
1060--- firebird2-1.5.3.4870~/src/jrd/exe.cpp 2006-02-01 23:07:02.000000000 +0200
1061+++ firebird2-1.5.3.4870/src/jrd/exe.cpp 2006-02-01 23:07:04.000000000 +0200
1062@@ -375,8 +375,8 @@
0d54301e
JB
1063
1064 if (to->nod_type == nod_field)
1065 {
1066- SSHORT id = (USHORT) to->nod_arg[e_fld_id];
32938903
AM
1067- REC record = request->req_rpb[(int) to->nod_arg[e_fld_stream]].rpb_record;
1068+ SSHORT id = (USHORT)(IPTR) to->nod_arg[e_fld_id];
1069+ REC record = request->req_rpb[(int)(IPTR) to->nod_arg[e_fld_stream]].rpb_record;
0d54301e
JB
1070 if (null) {
1071 SET_NULL(record, id);
32938903 1072 } else {
0d54301e
JB
1073@@ -639,7 +639,7 @@
1074 message = request->req_message;
1075 format = (FMT) message->nod_arg[e_msg_format];
1076
1077- if (msg != (USHORT) message->nod_arg[e_msg_number])
32938903 1078+ if (msg != (USHORT)(IPTR) message->nod_arg[e_msg_number])
0d54301e
JB
1079 ERR_post(gds_req_sync, 0);
1080
1081 if (length != format->fmt_length)
1082@@ -788,7 +788,7 @@
1083 for (ptr = node->nod_arg, end = ptr + node->nod_count; ptr < end;
1084 ptr++) {
1085 message = (*ptr)->nod_arg[e_send_message];
1086- if ((USHORT) message->nod_arg[e_msg_number] == msg) {
32938903 1087+ if ((USHORT)(IPTR) message->nod_arg[e_msg_number] == msg) {
0d54301e
JB
1088 request->req_next = *ptr;
1089 break;
1090 }
1091@@ -798,7 +798,7 @@
1092
1093 format = (FMT) message->nod_arg[e_msg_format];
1094
1095- if (msg != (USHORT) message->nod_arg[e_msg_number])
32938903 1096+ if (msg != (USHORT)(IPTR) message->nod_arg[e_msg_number])
0d54301e
JB
1097 ERR_post(gds_req_sync, 0);
1098
1099 if (length != format->fmt_length)
32938903
AM
1100@@ -1049,7 +1049,7 @@
1101 desc = &format->fmt_desc[n];
1102 if (!desc->dsc_address)
1103 continue;
1104- p = record->rec_data + (SLONG) desc->dsc_address;
1105+ p = record->rec_data + (SLONG)(IPTR) desc->dsc_address;
1106 if (TEST_NULL(record, n))
1107 {
1108 if (length = desc->dsc_length)
1109@@ -1134,7 +1134,7 @@
1110
1111 request = tdbb->tdbb_request;
1112 transaction = request->req_transaction;
1113- rpb = &request->req_rpb[(int) node->nod_arg[e_erase_stream]];
1114+ rpb = &request->req_rpb[(int)(IPTR) node->nod_arg[e_erase_stream]];
1115 relation = rpb->rpb_relation;
1116
1117 #ifdef PC_ENGINE
1118@@ -2015,7 +2015,7 @@
0d54301e
JB
1119 case jrd_req::req_evaluate:
1120 if (transaction != dbb->dbb_sys_trans) {
1121
1122- UCHAR operation = (UCHAR) node->nod_arg[e_sav_operation];
32938903 1123+ UCHAR operation = (UCHAR)(IPTR) node->nod_arg[e_sav_operation];
0d54301e
JB
1124 TEXT * node_savepoint_name = (TEXT*) node->nod_arg[e_sav_name];
1125
1126 // Skip the savepoint created by EXE_start
32938903 1127@@ -2328,7 +2328,7 @@
0d54301e
JB
1128 break;
1129
1130 case jrd_req::req_unwind:
1131- if ((request->req_label == (USHORT) node->nod_arg[e_lbl_label]) &&
32938903 1132+ if ((request->req_label == (USHORT)(IPTR) node->nod_arg[e_lbl_label]) &&
0d54301e
JB
1133 (request->req_flags & (req_leave | req_error_handler))) {
1134 request->req_flags &= ~req_leave;
1135 request->req_operation = jrd_req::req_return;
32938903 1136@@ -2342,7 +2342,7 @@
0d54301e
JB
1137 case nod_leave:
1138 request->req_flags |= req_leave;
1139 request->req_operation = jrd_req::req_unwind;
1140- request->req_label = (USHORT) node->nod_arg[0];
32938903 1141+ request->req_label = (USHORT)(IPTR) node->nod_arg[0];
0d54301e
JB
1142 node = node->nod_parent;
1143 break;
1144
32938903
AM
1145@@ -2652,7 +2652,7 @@
1146 DSC *desc;
1147
1148 desc = EVL_expr(tdbb, node->nod_arg[e_gen_value]);
1149- (void) DPM_gen_id(tdbb, (SLONG) node->nod_arg[e_gen_id], 1,
1150+ (void) DPM_gen_id(tdbb, (SLONG)(IPTR) node->nod_arg[e_gen_id], 1,
1151 MOV_get_int64(desc, 0));
1152 request->req_operation = jrd_req::req_return;
1153 }
1154@@ -2664,7 +2664,7 @@
1155 DSC *desc;
1156
1157 desc = EVL_expr(tdbb, node->nod_arg[e_gen_value]);
1158- (void) DPM_gen_id(tdbb, (SLONG) node->nod_arg[e_gen_id], 1,
1159+ (void) DPM_gen_id(tdbb, (SLONG)(IPTR) node->nod_arg[e_gen_id], 1,
1160 MOV_get_int64(desc, 0));
1161 request->req_operation = jrd_req::req_return;
1162 }
1163@@ -2794,11 +2794,11 @@
0d54301e
JB
1164 transaction = request->req_transaction;
1165 impure = (STA) ((SCHAR *) request + node->nod_impure);
1166
1167- org_stream = (USHORT) node->nod_arg[e_mod_org_stream];
32938903 1168+ org_stream = (USHORT)(IPTR) node->nod_arg[e_mod_org_stream];
0d54301e
JB
1169 org_rpb = &request->req_rpb[org_stream];
1170 relation = org_rpb->rpb_relation;
1171
1172- new_stream = (USHORT) node->nod_arg[e_mod_new_stream];
32938903 1173+ new_stream = (USHORT)(IPTR) node->nod_arg[e_mod_new_stream];
0d54301e
JB
1174 new_rpb = &request->req_rpb[new_stream];
1175
1176 #ifdef PC_ENGINE
32938903 1177@@ -3795,7 +3795,7 @@
0d54301e
JB
1178 JRD_REQ request = tdbb->tdbb_request;
1179 JRD_TRA transaction = request->req_transaction;
1180 STA impure = (STA) ((SCHAR *) request + node->nod_impure);
1181- SSHORT stream = (USHORT) node->nod_arg[e_sto_relation]->nod_arg[e_rel_stream];
32938903 1182+ SSHORT stream = (USHORT)(IPTR) node->nod_arg[e_sto_relation]->nod_arg[e_rel_stream];
0d54301e
JB
1183 RPB* rpb = &request->req_rpb[stream];
1184 JRD_REL relation = rpb->rpb_relation;
1185
32938903 1186@@ -4201,8 +4201,8 @@
0d54301e
JB
1187
1188 if (node->nod_type == nod_field)
1189 {
1190- stream = (USHORT) node->nod_arg[e_fld_stream];
1191- id = (USHORT) node->nod_arg[e_fld_id];
32938903
AM
1192+ stream = (USHORT)(IPTR) node->nod_arg[e_fld_stream];
1193+ id = (USHORT)(IPTR) node->nod_arg[e_fld_id];
0d54301e
JB
1194 relation = request->req_rpb[stream].rpb_relation;
1195
1196 if ((vector = relation->rel_fields) &&
32938903
AM
1197diff -urNad firebird2-1.5.3.4870~/src/jrd/ext.cpp firebird2-1.5.3.4870/src/jrd/ext.cpp
1198--- firebird2-1.5.3.4870~/src/jrd/ext.cpp 2006-02-01 23:07:02.000000000 +0200
1199+++ firebird2-1.5.3.4870/src/jrd/ext.cpp 2006-02-01 23:07:04.000000000 +0200
0d54301e
JB
1200@@ -266,7 +266,7 @@
1201 record = rpb->rpb_record;
1202 format = record->rec_format;
1203
1204- offset = (SSHORT) format->fmt_desc[0].dsc_address;
32938903 1205+ offset = (SSHORT)(IPTR) format->fmt_desc[0].dsc_address;
0d54301e
JB
1206 p = record->rec_data + offset;
1207 l = record->rec_length - offset;
1208
32938903
AM
1209@@ -299,7 +299,7 @@
1210 continue;
1211 if ( (literal = (LIT) field->fld_missing_value) ) {
1212 desc = *desc_ptr;
1213- desc.dsc_address = record->rec_data + (int) desc.dsc_address;
1214+ desc.dsc_address = record->rec_data + (int)(IPTR) desc.dsc_address;
1215 if (!MOV_compare(&literal->lit_desc, &desc))
1216 continue;
1217 }
1218@@ -512,7 +512,7 @@
1219 desc_ptr->dsc_length &&
1220 TEST_NULL(record, i))
1221 {
1222- p = record->rec_data + (int) desc_ptr->dsc_address;
1223+ p = record->rec_data + (int)(IPTR) desc_ptr->dsc_address;
1224 if ( (literal = (LIT) field->fld_missing_value) ) {
1225 desc = *desc_ptr;
1226 desc.dsc_address = p;
0d54301e
JB
1227@@ -528,7 +528,7 @@
1228 }
1229 }
1230
1231- offset = (USHORT) format->fmt_desc[0].dsc_address;
32938903 1232+ offset = (USHORT)(IPTR) format->fmt_desc[0].dsc_address;
0d54301e
JB
1233 p = record->rec_data + offset;
1234 l = record->rec_length - offset;
1235
32938903
AM
1236diff -urNad firebird2-1.5.3.4870~/src/jrd/gds.cpp firebird2-1.5.3.4870/src/jrd/gds.cpp
1237--- firebird2-1.5.3.4870~/src/jrd/gds.cpp 2006-02-01 23:07:03.000000000 +0200
1238+++ firebird2-1.5.3.4870/src/jrd/gds.cpp 2006-02-01 23:07:04.000000000 +0200
1239@@ -2287,7 +2287,7 @@
1240 return result;
1241
1242 if (stdio_flag)
1243- if (!(result = ib_fdopen((int) result, "w+")))
1244+ if (!(result = ib_fdopen((int)(IPTR) result, "w+")))
1245 return (void *)-1;
1246
1247 if (expanded_string)
1248diff -urNad firebird2-1.5.3.4870~/src/jrd/idx.cpp firebird2-1.5.3.4870/src/jrd/idx.cpp
1249--- firebird2-1.5.3.4870~/src/jrd/idx.cpp 2006-02-01 23:07:02.000000000 +0200
1250+++ firebird2-1.5.3.4870/src/jrd/idx.cpp 2006-02-01 23:07:04.000000000 +0200
1251@@ -1055,12 +1055,12 @@
0d54301e
JB
1252 index_number < idx->idx_foreign_primaries->count();
1253 index_number++) {
1254 if (idx->idx_id !=
1255- (UCHAR) (*idx->idx_foreign_primaries)[index_number]) continue;
32938903 1256+ (UCHAR)(IPTR) (*idx->idx_foreign_primaries)[index_number]) continue;
0d54301e
JB
1257 partner_relation =
1258 MET_relation(tdbb,
32938903
AM
1259- (int) (*idx->idx_foreign_relations)[index_number]);
1260+ (int)(IPTR) (*idx->idx_foreign_relations)[index_number]);
0d54301e
JB
1261 index_id =
1262- (USHORT) (*idx->idx_foreign_indexes)[index_number];
32938903 1263+ (USHORT)(IPTR) (*idx->idx_foreign_indexes)[index_number];
0d54301e
JB
1264 if ( (result =
1265 check_partner_index(tdbb, relation, record, transaction, idx,
1266 partner_relation, index_id)) )
32938903
AM
1267diff -urNad firebird2-1.5.3.4870~/src/jrd/inf.cpp firebird2-1.5.3.4870/src/jrd/inf.cpp
1268--- firebird2-1.5.3.4870~/src/jrd/inf.cpp 2003-06-08 16:13:23.000000000 +0300
1269+++ firebird2-1.5.3.4870/src/jrd/inf.cpp 2006-02-01 23:07:23.000000000 +0200
1270@@ -972,7 +972,7 @@
1271 node = request->req_message;
1272 if (item == gds_info_message_number)
1273 length =
1274- INF_convert((SLONG) node->nod_arg[e_msg_number],
1275+ INF_convert((SLONG)(IPTR) node->nod_arg[e_msg_number],
1276 buffer_ptr);
1277 else {
1278 format = (FMT) node->nod_arg[e_msg_format];
1279diff -urNad firebird2-1.5.3.4870~/src/jrd/met.epp firebird2-1.5.3.4870/src/jrd/met.epp
1280--- firebird2-1.5.3.4870~/src/jrd/met.epp 2006-02-01 23:07:02.000000000 +0200
1281+++ firebird2-1.5.3.4870/src/jrd/met.epp 2006-02-01 23:07:04.000000000 +0200
1282@@ -932,7 +932,7 @@
1283 if (desc->dsc_address)
1284 {
1285 format->fmt_length =
1286- (ULONG) desc->dsc_address + desc->dsc_length;
1287+ (ULONG)(IPTR) desc->dsc_address + desc->dsc_length;
1288 break;
1289 }
1290 }
1291@@ -2133,13 +2133,13 @@
1292 index_number < references->frgn_reference_ids->count();
1293 index_number++)
1294 {
1295- if (idx->idx_id == (UCHAR) (*references->frgn_reference_ids)
1296+ if (idx->idx_id == (UCHAR)(IPTR) (*references->frgn_reference_ids)
1297 [index_number])
1298 {
1299 idx->idx_primary_relation =
1300- (USHORT) (*references->frgn_relations)[index_number];
1301+ (USHORT)(IPTR) (*references->frgn_relations)[index_number];
1302 idx->idx_primary_index =
1303- (UCHAR) (*references->frgn_indexes)[index_number];
1304+ (UCHAR)(IPTR) (*references->frgn_indexes)[index_number];
1305 return TRUE;
1306 }
1307 }
1308@@ -2155,7 +2155,7 @@
1309 index_number < dependencies->prim_reference_ids->count();
1310 index_number++)
1311 {
1312- if (idx->idx_id == (UCHAR) (*dependencies->prim_reference_ids)
1313+ if (idx->idx_id == (UCHAR)(IPTR) (*dependencies->prim_reference_ids)
1314 [index_number])
1315 {
1316 idx->idx_foreign_primaries =
1317@@ -3001,10 +3001,10 @@
1318 {
1319 if ( (node = csb_->csb_rpt[i].csb_message) )
1320 {
1321- if ((int) node->nod_arg[e_msg_number] == 0)
1322+ if ((int)(IPTR) node->nod_arg[e_msg_number] == 0)
1323 {
1324 procedure->prc_input_msg = node;
1325- } else if ((int) node->nod_arg[e_msg_number] == 1)
1326+ } else if ((int)(IPTR) node->nod_arg[e_msg_number] == 1)
1327 {
1328 procedure->prc_output_msg = node;
1329 }
1330@@ -4580,7 +4580,7 @@
1331 node = (JRD_NOD) LLS_POP(&csb->csb_dependencies);
1332 if (!node->nod_arg[e_dep_object])
1333 continue;
1334- dpdo_type = (SSHORT) node->nod_arg[e_dep_object_type];
1335+ dpdo_type = (SSHORT)(IPTR) node->nod_arg[e_dep_object_type];
1336 relation = NULL;
1337 procedure = NULL;
1338 switch (dpdo_type) {
1339@@ -4593,13 +4593,13 @@
1340 dpdo_name = (TEXT*) procedure->prc_name->str_data;
1341 break;
1342 case obj_exception:
1343- number = (SLONG) node->nod_arg [e_dep_object];
1344+ number = (SLONG)(IPTR) node->nod_arg [e_dep_object];
1345 MET_lookup_exception (tdbb, number, name, NULL);
1346 dpdo_name = name;
1347 break;
1348 /* CVC: Here I'm going to track those pesky things named generators and UDFs. */
1349 case obj_generator:
1350- number = (SLONG) node->nod_arg [e_dep_object];
1351+ number = (SLONG)(IPTR) node->nod_arg [e_dep_object];
1352 MET_lookup_generator_id (tdbb, number, name);
1353 dpdo_name = name;
1354 break;
1355@@ -4617,7 +4617,7 @@
1356 {
1357 if (field_node->nod_type == nod_field)
1358 {
1359- fld_id = (SSHORT) field_node->nod_arg[0];
1360+ fld_id = (SSHORT)(IPTR) field_node->nod_arg[0];
1361 if (relation)
1362 {
1363 if ( (field = MET_get_field(relation, fld_id)) )
1364diff -urNad firebird2-1.5.3.4870~/src/jrd/sdl.cpp firebird2-1.5.3.4870/src/jrd/sdl.cpp
1365--- firebird2-1.5.3.4870~/src/jrd/sdl.cpp 2006-02-01 23:07:03.000000000 +0200
1366+++ firebird2-1.5.3.4870/src/jrd/sdl.cpp 2006-02-01 23:07:04.000000000 +0200
1367@@ -699,7 +699,7 @@
1368 }
1369 element_desc = array_desc->ads_rpt[value].ads_desc;
1370 element_desc.dsc_address = (BLOB_PTR *) arg->sdl_arg_array +
1371- (SLONG) element_desc.dsc_address +
1372+ (SLONG)(IPTR) element_desc.dsc_address +
1373 (array_desc->ads_element_length * subscript);
1374
1375 /* Is this element within the array bounds? */
1376
1377--- Firebird.org/src/jrd/jrd.cpp~ 2004-11-17 12:41:16.000000000 +0100
1378+++ Firebird/src/jrd/jrd.cpp 2006-03-28 18:47:32.722559750 +0200
1379@@ -3877,9 +3877,9 @@
1380 {
1381 if ( (node = csb->csb_rpt[i].csb_message) )
1382 {
1383- if ((int) node->nod_arg[e_msg_number] == 0) {
1384+ if ((int)(IPTR) node->nod_arg[e_msg_number] == 0) {
1385 in_message = node;
1386- } else if ((int) node->nod_arg[e_msg_number] == 1) {
1387+ } else if ((int)(IPTR) node->nod_arg[e_msg_number] == 1) {
1388 out_message = node;
1389 }
1390 }
1391--- Firebird.org/src/jrd/jrn.cpp.org 2006-03-28 18:52:47.582237250 +0200
1392+++ Firebird/src/jrd/jrn.cpp 2006-03-28 18:54:06.667179750 +0200
1393@@ -836,7 +836,7 @@
1394 for (loop = 0; loop < 20; loop++) {
1395 for (;;) {
1396 journal->jrn_channel = (int *) socket(AF_INET, SOCK_STREAM, 0);
1397- if ((int) journal->jrn_channel != -1)
1398+ if ((int)(IPTR) journal->jrn_channel != -1)
1399 break;
1400 if (!SYSCALL_INTERRUPTED(errno)) {
1401 error(status_vector, journal, errno, "socket");
1402@@ -859,18 +859,18 @@
1403 return ret_val;
1404 }
1405
1406- if (!connect((int) journal->jrn_channel, (sockaddr*)&address, sizeof(address)))
1407+ if (!connect((int)(IPTR) journal->jrn_channel, (sockaddr*)&address, sizeof(address)))
1408 break;
1409
1410 sleep(3);
1411
1412 if (loop < 16) {
1413- close((int) journal->jrn_channel);
1414+ close((int)(IPTR) journal->jrn_channel);
1415 continue;
1416 }
1417 if (!SYSCALL_INTERRUPTED(errno)) {
1418 if (retry) {
1419- close((int) journal->jrn_channel);
1420+ close((int)(IPTR) journal->jrn_channel);
1421 gds__free(journal);
1422 *ret_jrn = (JRN) NULL;
1423 return FB_SUCCESS;
1424@@ -879,7 +879,7 @@
1425 gds__free(journal);
1426 return FB_FAILURE;
1427 }
1428- close((int) journal->jrn_channel);
1429+ close((int)(IPTR) journal->jrn_channel);
1430 }
1431 #endif
1432
1433@@ -939,7 +939,7 @@
1434 if (retry)
1435 {
1436 #ifdef BSD_SOCKETS
1437- close((int) journal->jrn_channel);
1438+ close((int)(IPTR) journal->jrn_channel);
1439 #endif
1440
1441 #ifdef WIN_NT
1442@@ -1056,7 +1056,7 @@
1443 with us, so keep trying until successful. */
1444
1445 do {
1446- l = recv((int) journal->jrn_channel, (char *) reply, sizeof(struct jrnr), 0);
1447+ l = recv((int)(IPTR) journal->jrn_channel, (char *) reply, sizeof(struct jrnr), 0);
1448 } while (l < 0 && SYSCALL_INTERRUPTED(errno));
1449
1450 if (l < 0) {
1451@@ -1095,7 +1095,7 @@
1452 **************************************/
1453
1454 #ifdef BSD_SOCKETS
1455- if (close((int) journal->jrn_channel) < 0) {
1456+ if (close((int)(IPTR) journal->jrn_channel) < 0) {
1457 error(status_vector, journal, errno, "close");
1458 return FB_FAILURE;
1459 }
1460@@ -1166,7 +1166,7 @@
1461 with us, so keep trying until successful. */
1462
1463 do {
1464- l = send((int) journal->jrn_channel, (char *) buffer, (int) length, 0);
1465+ l = send((int)(IPTR) journal->jrn_channel, (char *) buffer, (int) length, 0);
1466 } while (l < 0 && SYSCALL_INTERRUPTED(errno));
1467
1468 if (l < 0) {
1469--- Firebird.org/src/jrd/nav.cpp.org 2006-03-28 19:04:53.447601000 +0200
1470+++ Firebird/src/jrd/nav.cpp 2006-03-28 19:08:20.452538000 +0200
1471@@ -487,7 +487,7 @@
1472
1473 init_fetch(impure);
1474 idx =
1475- (IDX *) ((SCHAR *) impure + (SLONG) rsb->rsb_arg[RSB_NAV_idx_offset]);
1476+ (IDX *) ((SCHAR *) impure + (SLONG)(IPTR) rsb->rsb_arg[RSB_NAV_idx_offset]);
1477
1478 /* The bitmap is only valid when we are continuing on in one
1479 direction. It is of no help when we change direction,
1480@@ -521,12 +521,12 @@
1481 #ifdef SCROLLABLE_CURSORS
1482 MOVE_FAST(
1483 (impure->irsb_nav_data +
1484- (2 * (SLONG) rsb->rsb_arg[RSB_NAV_key_length])),
1485+ (2 * (SLONG)(IPTR) rsb->rsb_arg[RSB_NAV_key_length])),
1486 upper.key_data, upper.key_length);
1487 #else
1488 MOVE_FAST(
1489 (impure->irsb_nav_data +
1490- (SLONG) rsb->rsb_arg[RSB_NAV_key_length]), upper.key_data,
1491+ (SLONG)(IPTR) rsb->rsb_arg[RSB_NAV_key_length]), upper.key_data,
1492 upper.key_length);
1493 #endif
1494 }
1495@@ -534,7 +534,7 @@
1496 lower.key_length = impure->irsb_nav_lower_length;
1497 MOVE_FAST(
1498 (impure->irsb_nav_data +
1499- (SLONG) rsb->rsb_arg[RSB_NAV_key_length]), lower.key_data,
1500+ (SLONG)(IPTR) rsb->rsb_arg[RSB_NAV_key_length]), lower.key_data,
1501 lower.key_length);
1502 }
1503
1504@@ -1404,7 +1404,7 @@
1505 tdbb = GET_THREAD_DATA;
1506
1507 idx =
1508- (IDX *) ((SCHAR *) impure + (SLONG) rsb->rsb_arg[RSB_NAV_idx_offset]);
1509+ (IDX *) ((SCHAR *) impure + (SLONG)(IPTR) rsb->rsb_arg[RSB_NAV_idx_offset]);
1510 page = (BTR) CCH_FETCH(tdbb, window, LCK_read, pag_index);
1511
1512 /* the outer loop goes through all the sibling pages
1513@@ -1619,7 +1619,7 @@
1514 tdbb = GET_THREAD_DATA;
1515 request = tdbb->tdbb_request;
1516 idx =
1517- (IDX *) ((SCHAR *) impure + (SLONG) rsb->rsb_arg[RSB_NAV_idx_offset]);
1518+ (IDX *) ((SCHAR *) impure + (SLONG)(IPTR) rsb->rsb_arg[RSB_NAV_idx_offset]);
1519
1520 BOOLEAN result;
1521
1522@@ -1656,7 +1656,7 @@
1523 rpb->rpb_record,
1524 reinterpret_cast <
1525 struct idx *>((SCHAR *) impure +
1526- (SLONG) rsb->rsb_arg[RSB_NAV_idx_offset]),
1527+ (SLONG)(IPTR) rsb->rsb_arg[RSB_NAV_idx_offset]),
1528 &value,
1529 0);
1530 if (compare_keys(idx, key->key_data, key->key_length, &value, FALSE)) {
1531@@ -1757,7 +1757,7 @@
1532 retrieval_node = (JRD_NOD) rsb->rsb_arg[RSB_NAV_index];
1533 retrieval = (IRB) retrieval_node->nod_arg[e_idx_retrieval];
1534 idx =
1535- (IDX *) ((SCHAR *) impure + (SLONG) rsb->rsb_arg[RSB_NAV_idx_offset]);
1536+ (IDX *) ((SCHAR *) impure + (SLONG)(IPTR) rsb->rsb_arg[RSB_NAV_idx_offset]);
1537 page =
1538 BTR_find_page(tdbb, retrieval, window, idx, &lower, &upper,
1539 (direction == RSE_get_backward));
1540@@ -1770,7 +1770,7 @@
1541 impure->irsb_nav_lower_length = lower.key_length;
1542 MOVE_FAST(lower.key_data,
1543 (impure->irsb_nav_data +
1544- (SLONG) rsb->rsb_arg[RSB_NAV_key_length]),
1545+ (SLONG)(IPTR) rsb->rsb_arg[RSB_NAV_key_length]),
1546 lower.key_length);
1547 }
1548
1549@@ -1778,7 +1778,7 @@
1550 impure->irsb_nav_upper_length = upper.key_length;
1551 MOVE_FAST(upper.key_data,
1552 (impure->irsb_nav_data +
1553- (2 * (SLONG) rsb->rsb_arg[RSB_NAV_key_length])),
1554+ (2 * (SLONG)(IPTR) rsb->rsb_arg[RSB_NAV_key_length])),
1555 upper.key_length);
1556 }
1557
1558@@ -1802,7 +1802,7 @@
1559 impure->irsb_nav_upper_length = upper.key_length;
1560 MOVE_FAST(upper.key_data,
1561 (impure->irsb_nav_data +
1562- (SLONG) rsb->rsb_arg[RSB_NAV_key_length]),
1563+ (SLONG)(IPTR) rsb->rsb_arg[RSB_NAV_key_length]),
1564 upper.key_length);
1565 }
1566 if (retrieval->irb_lower_count)
1567@@ -1813,7 +1813,7 @@
1568 impure->irsb_nav_lower_length = lower.key_length;
1569 MOVE_FAST(lower.key_data,
1570 (impure->irsb_nav_data +
1571- (SLONG) rsb->rsb_arg[RSB_NAV_key_length]),
1572+ (SLONG)(IPTR) rsb->rsb_arg[RSB_NAV_key_length]),
1573 lower.key_length);
1574 }
1575 if (retrieval->irb_upper_count)
1576--- Firebird.org/src/jrd/opt.cpp.org 2006-03-28 19:12:44.949068000 +0200
1577+++ Firebird/src/jrd/opt.cpp 2006-03-28 19:21:54.587418250 +0200
0d54301e
JB
1578@@ -380,7 +380,7 @@
1579
1580 if (node->nod_type != nod_rse)
1581 {
1582- stream = (USHORT) node->nod_arg[STREAM_INDEX(node)];
32938903 1583+ stream = (USHORT)(IPTR) node->nod_arg[STREAM_INDEX(node)];
0d54301e
JB
1584 assert(stream <= MAX_UCHAR);
1585 assert(beds[0] < MAX_STREAMS && beds[0] < MAX_UCHAR);
1586 beds[++beds[0]] = (UCHAR) stream;
1587@@ -400,7 +400,7 @@
1588 (USHORT) (key_streams[0] - i));
1589 assert(local_streams[0] < MAX_STREAMS && local_streams[0] < MAX_UCHAR);
1590 local_streams[++local_streams[0]] =
1591- (UCHAR) node->nod_arg[e_uni_stream];
32938903 1592+ (UCHAR)(IPTR) node->nod_arg[e_uni_stream];
0d54301e
JB
1593 }
1594 else if (node->nod_type == nod_aggregate) {
1595 assert((int)node->nod_arg[e_agg_stream] <= MAX_STREAMS);
1596@@ -408,13 +408,13 @@
1597 rsb = gen_aggregate(tdbb, opt_, node);
1598 assert(local_streams[0] < MAX_STREAMS && local_streams[0] < MAX_UCHAR);
1599 local_streams[++local_streams[0]] =
1600- (UCHAR) node->nod_arg[e_agg_stream];
32938903 1601+ (UCHAR)(IPTR) node->nod_arg[e_agg_stream];
0d54301e
JB
1602 }
1603 else if (node->nod_type == nod_procedure) {
1604 rsb = gen_procedure(tdbb, opt_, node);
1605 assert(local_streams[0] < MAX_STREAMS && local_streams[0] < MAX_UCHAR);
1606 local_streams[++local_streams[0]] =
1607- (UCHAR) node->nod_arg[e_prc_stream];
32938903 1608+ (UCHAR)(IPTR) node->nod_arg[e_prc_stream];
0d54301e
JB
1609 }
1610 else if (node->nod_type == nod_rse) {
1611 compute_rse_streams(csb, (RSE) node, beds);
1612@@ -895,7 +895,7 @@
1613
1614 /* Make sure we have the correct stream */
1615
1616- if ((USHORT) dbkey->nod_arg[0] != stream)
32938903 1617+ if ((USHORT)(IPTR) dbkey->nod_arg[0] != stream)
0d54301e
JB
1618 return NULL;
1619
1620 /* If this is a dbkey for the appropriate stream, it's invertable */
32938903 1621@@ -1769,7 +1769,7 @@
0d54301e
JB
1622 switch (node->nod_type) {
1623 case nod_field:
1624
1625- n = (USHORT) node->nod_arg[e_fld_stream];
32938903 1626+ n = (USHORT)(IPTR) node->nod_arg[e_fld_stream];
0d54301e
JB
1627
1628 if (allowOnlyCurrentStream) {
1629 if (n != stream) {
32938903 1630@@ -1795,7 +1795,7 @@
0d54301e
JB
1631
1632 case nod_dbkey:
1633
1634- n = (USHORT) node->nod_arg[0];
32938903 1635+ n = (USHORT)(IPTR) node->nod_arg[0];
0d54301e
JB
1636
1637 if (allowOnlyCurrentStream) {
1638 if (n != stream) {
32938903 1639@@ -1866,7 +1866,7 @@
0d54301e
JB
1640
1641 for (ptr = rse->rse_relation, end = ptr + rse->rse_count; ptr < end; ptr++) {
1642 if ((*ptr)->nod_type != nod_rse) {
1643- n = (USHORT) (*ptr)->nod_arg[STREAM_INDEX((*ptr))];
32938903 1644+ n = (USHORT)(IPTR) (*ptr)->nod_arg[STREAM_INDEX((*ptr))];
0d54301e
JB
1645 csb->csb_rpt[n].csb_flags |= csb_active;
1646 }
1647 }
32938903 1648@@ -1903,7 +1903,7 @@
0d54301e
JB
1649 {
1650 if ((*ptr)->nod_type != nod_rse)
1651 {
1652- n = (USHORT) (*ptr)->nod_arg[STREAM_INDEX((*ptr))];
32938903 1653+ n = (USHORT)(IPTR) (*ptr)->nod_arg[STREAM_INDEX((*ptr))];
0d54301e
JB
1654 csb->csb_rpt[n].csb_flags &= ~csb_active;
1655 }
1656 }
32938903 1657@@ -1944,12 +1944,12 @@
0d54301e
JB
1658
1659 switch (node->nod_type) {
1660 case nod_field:
1661- n = (USHORT) node->nod_arg[e_fld_stream];
32938903 1662+ n = (USHORT)(IPTR) node->nod_arg[e_fld_stream];
0d54301e
JB
1663 SET_DEP_BIT(dependencies, n);
1664 return;
1665
1666 case nod_dbkey:
1667- n = (USHORT) node->nod_arg[0];
32938903 1668+ n = (USHORT)(IPTR) node->nod_arg[0];
0d54301e
JB
1669 SET_DEP_BIT(dependencies, n);
1670 return;
1671
32938903 1672@@ -2005,7 +2005,7 @@
0d54301e
JB
1673
1674 for (ptr = rse->rse_relation, end = ptr + rse->rse_count; ptr < end; ptr++) {
1675 if ((*ptr)->nod_type != nod_rse) {
1676- n = (USHORT) (*ptr)->nod_arg[STREAM_INDEX((*ptr))];
32938903 1677+ n = (USHORT)(IPTR) (*ptr)->nod_arg[STREAM_INDEX((*ptr))];
0d54301e
JB
1678 CLEAR_DEP_BIT(dependencies, n);
1679 }
1680 }
32938903 1681@@ -2033,7 +2033,7 @@
0d54301e
JB
1682
1683 if (node->nod_type == nod_relation) {
1684 assert(streams[0] < MAX_STREAMS && streams[0] < MAX_UCHAR);
1685- streams[++streams[0]] = (UCHAR) node->nod_arg[e_rel_stream];
32938903 1686+ streams[++streams[0]] = (UCHAR)(IPTR) node->nod_arg[e_rel_stream];
0d54301e
JB
1687 }
1688 else if (node->nod_type == nod_union) {
1689 clauses = node->nod_arg[e_uni_clauses];
32938903 1690@@ -2073,7 +2073,7 @@
0d54301e
JB
1691 node = *ptr;
1692 if (node->nod_type != nod_rse) {
1693 assert(streams[0] < MAX_STREAMS && streams[0] < MAX_UCHAR);
1694- streams[++streams[0]] = (UCHAR) node->nod_arg[STREAM_INDEX(node)];
32938903 1695+ streams[++streams[0]] = (UCHAR)(IPTR) node->nod_arg[STREAM_INDEX(node)];
0d54301e
JB
1696 }
1697 else {
1698 compute_rse_streams(csb, (RSE) node, streams);
32938903 1699@@ -3371,7 +3371,7 @@
0d54301e
JB
1700 JRD_NOD dbkey_temp, *ptr, *end;
1701 DEV_BLKCHK(dbkey, type_nod);
1702 if (dbkey->nod_type == nod_dbkey) {
1703- if ((USHORT) dbkey->nod_arg[0] == stream)
32938903 1704+ if ((USHORT)(IPTR) dbkey->nod_arg[0] == stream)
0d54301e
JB
1705 return dbkey;
1706 else {
1707 *position = *position + 1;
32938903 1708@@ -3632,7 +3632,7 @@
0d54301e
JB
1709
1710 temp[0]++;
1711 relation_node = plan_node->nod_arg[e_retrieve_relation];
1712- temp[temp[0]] = (UCHAR) relation_node->nod_arg[e_rel_stream];
32938903 1713+ temp[temp[0]] = (UCHAR)(IPTR) relation_node->nod_arg[e_rel_stream];
0d54301e
JB
1714 }
1715
1716 // just because the user specified a join does not mean that
32938903 1717@@ -3806,7 +3806,7 @@
0d54301e
JB
1718 rsb->rsb_type = rsb_aggregate;
1719 assert((int)node->nod_arg[e_agg_stream] <= MAX_STREAMS);
1720 assert((int)node->nod_arg[e_agg_stream] <= MAX_UCHAR);
1721- rsb->rsb_stream = (UCHAR) node->nod_arg[e_agg_stream];
32938903 1722+ rsb->rsb_stream = (UCHAR)(IPTR) node->nod_arg[e_agg_stream];
0d54301e
JB
1723 rsb->rsb_format = csb->csb_rpt[rsb->rsb_stream].csb_format;
1724 rsb->rsb_next = OPT_compile(tdbb, csb, rse, NULL);
1725 rsb->rsb_arg[0] = (RSB) node;
32938903 1726@@ -4170,8 +4170,8 @@
0d54301e
JB
1727 idx->idx_rpt; ptr < end; ptr++, idx_tail++) {
1728 node = *ptr;
1729 if (node->nod_type != nod_field
1730- || (USHORT) node->nod_arg[e_fld_stream] != stream
1731- || (USHORT) node->nod_arg[e_fld_id] != idx_tail->idx_field
32938903
AM
1732+ || (USHORT)(IPTR) node->nod_arg[e_fld_stream] != stream
1733+ || (USHORT)(IPTR) node->nod_arg[e_fld_id] != idx_tail->idx_field
0d54301e
JB
1734 || ptr[2*sort->nod_count] /* do not use index if NULLS FIRST is used */
1735 #ifdef SCROLLABLE_CURSORS
1736 )
32938903 1737@@ -4331,7 +4331,7 @@
0d54301e
JB
1738 {
1739 stream_ptr[i]->stream_rsb = NULL;
1740 stream_ptr[i]->stream_num =
1741- (USHORT) node->nod_arg[STREAM_INDEX(node)];
32938903 1742+ (USHORT)(IPTR) node->nod_arg[STREAM_INDEX(node)];
0d54301e
JB
1743 }
1744 }
1745
32938903 1746@@ -4409,10 +4409,10 @@
0d54301e
JB
1747 SET_TDBB(tdbb);
1748 csb = opt->opt_csb;
1749 procedure = MET_lookup_procedure_id(tdbb,
1750- (SSHORT)node->nod_arg[e_prc_procedure], FALSE, FALSE, 0);
32938903 1751+ (SSHORT)(IPTR)node->nod_arg[e_prc_procedure], FALSE, FALSE, 0);
0d54301e
JB
1752 rsb = FB_NEW_RPT(*tdbb->tdbb_default, RSB_PRC_count) Rsb();
1753 rsb->rsb_type = rsb_procedure;
1754- rsb->rsb_stream = (UCHAR) node->nod_arg[e_prc_stream];
32938903 1755+ rsb->rsb_stream = (UCHAR)(IPTR) node->nod_arg[e_prc_stream];
0d54301e
JB
1756 rsb->rsb_procedure = procedure;
1757 rsb->rsb_format = procedure->prc_format;
1758 rsb->rsb_impure = CMP_impure(csb, sizeof(struct irsb_procedure));
32938903 1759@@ -5025,8 +5025,8 @@
0d54301e
JB
1760 for (node_ptr = sort->nod_arg; node_ptr < end_node; node_ptr++) {
1761 node = *node_ptr;
1762 if (node->nod_type == nod_field
1763- && (USHORT) node->nod_arg[e_fld_stream] == *ptr
1764- && (USHORT) node->nod_arg[e_fld_id] == id) {
32938903
AM
1765+ && (USHORT)(IPTR) node->nod_arg[e_fld_stream] == *ptr
1766+ && (USHORT)(IPTR) node->nod_arg[e_fld_id] == id) {
0d54301e
JB
1767 desc = &descriptor;
1768 CMP_get_desc(tdbb, csb, node, desc);
1769 /* International type text has a computed key */
32938903 1770@@ -5123,8 +5123,8 @@
0d54301e
JB
1771 map_item->smb_desc.dsc_address = (UCHAR *) map_length;
1772 map_length += desc->dsc_length;
1773 if (node->nod_type == nod_field) {
1774- map_item->smb_stream = (USHORT) node->nod_arg[e_fld_stream];
1775- map_item->smb_field_id = (USHORT) node->nod_arg[e_fld_id];
32938903
AM
1776+ map_item->smb_stream = (USHORT)(IPTR) node->nod_arg[e_fld_stream];
1777+ map_item->smb_field_id = (USHORT)(IPTR) node->nod_arg[e_fld_id];
0d54301e
JB
1778 }
1779 }
1780
32938903 1781@@ -5136,8 +5136,8 @@
0d54301e
JB
1782 field has already been mentioned as a sort key, don't bother to repeat
1783 it. */
1784 while (stream_stack) {
1785- id = (USHORT) LLS_POP(&id_stack);
1786- stream = (USHORT) LLS_POP(&stream_stack);
32938903
AM
1787+ id = (USHORT)(IPTR) LLS_POP(&id_stack);
1788+ stream = (USHORT)(IPTR) LLS_POP(&stream_stack);
0d54301e
JB
1789 format = CMP_format(tdbb, csb, stream);
1790 desc = &format->fmt_desc[id];
1791 if (id >= format->fmt_count || desc->dsc_length == 0)
32938903 1792@@ -5466,7 +5466,7 @@
0d54301e
JB
1793 rsb = FB_NEW_RPT(*tdbb->tdbb_default, count + nstreams + 1) Rsb();
1794 rsb->rsb_type = rsb_union;
1795 rsb->rsb_count = count;
1796- rsb->rsb_stream = (UCHAR) union_node->nod_arg[e_uni_stream];
32938903 1797+ rsb->rsb_stream = (UCHAR)(IPTR) union_node->nod_arg[e_uni_stream];
0d54301e
JB
1798 rsb->rsb_format = csb->csb_rpt[rsb->rsb_stream].csb_format;
1799 rsb->rsb_impure = CMP_impure(csb, sizeof(struct irsb));
1800 rsb_ptr = rsb->rsb_arg;
32938903 1801@@ -6008,8 +6008,8 @@
0d54301e
JB
1802 field = boolean->nod_arg[0];
1803 if (field->nod_type != nod_field)
1804 return NULL;
1805- if ((USHORT) field->nod_arg[e_fld_stream] != stream ||
1806- (USHORT) field->nod_arg[e_fld_id] != idx->idx_rpt[0].idx_field)
32938903
AM
1807+ if ((USHORT)(IPTR) field->nod_arg[e_fld_stream] != stream ||
1808+ (USHORT)(IPTR) field->nod_arg[e_fld_id] != idx->idx_rpt[0].idx_field)
0d54301e
JB
1809 return NULL;
1810 node = make_index_node(tdbb, relation, opt->opt_csb, idx);
1811 retrieval = (IRB) node->nod_arg[e_idx_retrieval];
32938903 1812@@ -6077,8 +6077,8 @@
0d54301e
JB
1813 return NULL;
1814 }
1815
1816- if ((USHORT) field->nod_arg[e_fld_stream] != stream ||
1817- (USHORT) field->nod_arg[e_fld_id] != idx->idx_rpt[0].idx_field
32938903
AM
1818+ if ((USHORT)(IPTR) field->nod_arg[e_fld_stream] != stream ||
1819+ (USHORT)(IPTR) field->nod_arg[e_fld_id] != idx->idx_rpt[0].idx_field
0d54301e
JB
1820 || !(idx->idx_rpt[0].idx_itype == idx_string
1821 || idx->idx_rpt[0].idx_itype == idx_byte_array
1822 || idx->idx_rpt[0].idx_itype == idx_metadata
32938903 1823@@ -6176,10 +6176,10 @@
0d54301e
JB
1824 if (access_type) {
1825 for (arg = access_type->nod_arg, end = arg + plan_count;
1826 arg < end; arg += 3) {
1827- if (relation_id != (SSHORT) * arg)
32938903 1828+ if (relation_id != (SSHORT)(IPTR) * arg)
0d54301e
JB
1829 /* index %s cannot be used in the specified plan */
1830 ERR_post(gds_index_unused, gds_arg_string, *(arg + 2), 0);
1831- if (idx->idx_id == (USHORT) * (arg + 1))
32938903 1832+ if (idx->idx_id == (USHORT)(IPTR) * (arg + 1))
0d54301e
JB
1833 if (access_type->nod_type == nod_navigational)
1834 idx->idx_runtime_flags |= idx_plan_navigate;
1835 else /* nod_indices */
32938903 1836@@ -6251,13 +6251,13 @@
0d54301e
JB
1837 If left side is still not a field, give up */
1838
1839 if (match->nod_type != nod_field ||
1840- (USHORT) match->nod_arg[e_fld_stream] != stream ||
32938903 1841+ (USHORT)(IPTR) match->nod_arg[e_fld_stream] != stream ||
0d54301e
JB
1842 !computable(opt->opt_csb, value, stream, true, false))
1843 {
1844 match = value;
1845 value = boolean->nod_arg[0];
1846 if (match->nod_type != nod_field ||
1847- (USHORT) match->nod_arg[e_fld_stream] != stream ||
32938903 1848+ (USHORT)(IPTR) match->nod_arg[e_fld_stream] != stream ||
0d54301e
JB
1849 !computable(opt->opt_csb, value, stream, true, false))
1850 {
1851 return 0;
32938903 1852@@ -6276,7 +6276,7 @@
0d54301e
JB
1853 #ifdef EXPRESSION_INDICES
1854 (idx->idx_expression ||
1855 #endif
1856- ((USHORT) match->nod_arg[e_fld_id] == idx->idx_rpt[i].idx_field)
32938903 1857+ ((USHORT)(IPTR) match->nod_arg[e_fld_id] == idx->idx_rpt[i].idx_field)
0d54301e
JB
1858 #ifdef EXPRESSION_INDICES
1859 )
1860 #endif
32938903 1861@@ -6664,7 +6664,7 @@
0d54301e
JB
1862 return FALSE;
1863 for (streams = river->riv_streams, end =
1864 streams + river->riv_count; streams < end; streams++)
1865- if ((USHORT) node->nod_arg[e_fld_stream] == *streams)
32938903 1866+ if ((USHORT)(IPTR) node->nod_arg[e_fld_stream] == *streams)
0d54301e
JB
1867 return TRUE;
1868 return FALSE;
1869 }
32938903 1870@@ -6861,7 +6861,7 @@
0d54301e
JB
1871 ptr < end; ptr++) {
1872 node = *ptr;
1873 if (node->nod_type != nod_rse) {
1874- stream = (USHORT) node->nod_arg[STREAM_INDEX(node)];
32938903 1875+ stream = (USHORT)(IPTR) node->nod_arg[STREAM_INDEX(node)];
0d54301e
JB
1876 csb->csb_rpt[stream].csb_flags &= ~csb_active;
1877 }
1878 else
32938903
AM
1879--- Firebird.org/src/jrd/par.cpp.org 2006-03-28 19:40:36.909559000 +0200
1880+++ Firebird/src/jrd/par.cpp 2006-03-28 19:40:47.922247250 +0200
0d54301e
JB
1881@@ -2518,7 +2518,7 @@
1882 node->nod_arg[e_agg_rse] = parse(tdbb, csb, TYPE_RSE);
1883 node->nod_arg[e_agg_group] = parse(tdbb, csb, OTHER);
1884 node->nod_arg[e_agg_map] =
1885- par_map(tdbb, csb, (USHORT) node->nod_arg[e_agg_stream]);
32938903 1886+ par_map(tdbb, csb, (USHORT)(IPTR) node->nod_arg[e_agg_stream]);
0d54301e
JB
1887 break;
1888
1889 case blr_group_by:
32938903
AM
1890--- Firebird.org/src/jrd/rse.cpp.org 2006-03-28 19:44:31.600226250 +0200
1891+++ Firebird/src/jrd/rse.cpp 2006-03-28 19:46:40.508282500 +0200
0d54301e
JB
1892@@ -730,8 +730,8 @@
1893 /* Initialize the record number of each stream in the union */
1894
1895 ptr = &rsb->rsb_arg[rsb->rsb_count];
1896- for (end = ptr + (USHORT) * ptr; ++ptr <= end;)
1897- request->req_rpb[(USHORT) * ptr].rpb_number = -1;
32938903
AM
1898+ for (end = ptr + (USHORT)(IPTR) * ptr; ++ptr <= end;)
1899+ request->req_rpb[(USHORT)(IPTR) * ptr].rpb_number = -1;
0d54301e
JB
1900
1901 rsb = rsb->rsb_arg[0];
1902 }
32938903
AM
1903@@ -2151,7 +2151,7 @@
1904 }
1905
1906 desc = msg_format->fmt_desc[msg_format->fmt_count - 1];
1907- desc.dsc_address = (UCHAR *) (om + (int) desc.dsc_address);
1908+ desc.dsc_address = (UCHAR *) (om + (int)(IPTR) desc.dsc_address);
1909 eos_desc.dsc_dtype = dtype_short;
1910 eos_desc.dsc_scale = 0;
1911 eos_desc.dsc_length = sizeof(SSHORT);
0d54301e
JB
1912@@ -2914,7 +2914,7 @@
1913 request = tdbb->tdbb_request;
1914 stack = (LLS) rsb->rsb_arg[streams];
1915 for (; stack; stack = stack->lls_next) {
1916- rpb = &request->req_rpb[(USHORT) stack->lls_object];
32938903 1917+ rpb = &request->req_rpb[(USHORT)(IPTR) stack->lls_object];
0d54301e
JB
1918
1919 /* Make sure a record block has been allocated. If there isn't
1920 one, first find the format, then allocate the record block */
32938903
AM
1921@@ -2959,7 +2959,7 @@
1922 for (item = map->smb_rpt; item < end_item; item++) {
1923 flag = *(data + item->smb_flag_offset);
1924 from = item->smb_desc;
1925- from.dsc_address = data + (ULONG) from.dsc_address;
1926+ from.dsc_address = data + (ULONG)(IPTR) from.dsc_address;
1927 if ((node = item->smb_node) && node->nod_type != nod_field)
1928 continue;
1929
0d54301e
JB
1930@@ -2972,7 +2972,7 @@
1931 list that contains the data to send back
1932 */
1933 if (IS_INTL_DATA(&item->smb_desc) &&
1934- (USHORT) item->smb_desc.dsc_address <
32938903 1935+ (USHORT)(IPTR) item->smb_desc.dsc_address <
0d54301e
JB
1936 map->smb_key_length * sizeof(ULONG)) continue;
1937
1938 rpb = &request->req_rpb[item->smb_stream];
32938903
AM
1939@@ -3211,7 +3211,7 @@
1940 end_item = map->smb_rpt + map->smb_count;
1941 for (item = map->smb_rpt; item < end_item; item++) {
1942 to = item->smb_desc;
1943- to.dsc_address = data + (ULONG) to.dsc_address;
1944+ to.dsc_address = data + (ULONG)(IPTR) to.dsc_address;
1945 flag = FALSE;
1946 if (item->smb_node) {
1947 from = EVL_expr(tdbb, item->smb_node);
0d54301e
JB
1948@@ -3238,7 +3238,7 @@
1949 the sort record, then want to sort by language dependent order */
1950
1951 if (IS_INTL_DATA(&item->smb_desc) &&
1952- (USHORT) item->smb_desc.dsc_address <
32938903 1953+ (USHORT)(IPTR) item->smb_desc.dsc_address <
0d54301e
JB
1954 map->smb_key_length * sizeof(ULONG)) {
1955 INTL_string_to_key(tdbb, INTL_INDEX_TYPE(&item->smb_desc),
1956 from, &to, FALSE);
32938903
AM
1957@@ -3301,12 +3301,12 @@
1958 desc2.dsc_flags = 0;
1959 desc2.dsc_address = (UCHAR *) & indicator;
1960 desc1 = *flag_desc;
1961- desc1.dsc_address = msg + (int) flag_desc->dsc_address;
1962+ desc1.dsc_address = msg + (int)(IPTR) flag_desc->dsc_address;
1963 MOV_move(&desc1, &desc2);
1964 if (indicator) {
1965 SET_NULL(record, to_id);
1966 l = to_desc->dsc_length;
1967- p = record->rec_data + (int) to_desc->dsc_address;
1968+ p = record->rec_data + (int)(IPTR) to_desc->dsc_address;
1969 switch (to_desc->dsc_dtype) {
1970 case dtype_text:
1971 /* YYY - not necessarily the right thing to do */
1972@@ -3336,9 +3336,9 @@
1973 else {
1974 CLEAR_NULL(record, to_id);
1975 desc1 = *from_desc;
1976- desc1.dsc_address = msg + (int) desc1.dsc_address;
1977+ desc1.dsc_address = msg + (int)(IPTR) desc1.dsc_address;
1978 desc2 = *to_desc;
1979- desc2.dsc_address = record->rec_data + (int) desc2.dsc_address;
1980+ desc2.dsc_address = record->rec_data + (int)(IPTR) desc2.dsc_address;
1981 if (!DSC_EQUIV((&desc1), (&desc2)))
1982 MOV_move(&desc1, &desc2);
1983
1984@@ -3817,7 +3817,7 @@
1985 if (!sfb_->sfb_file_name) {
1986 TEXT file_name[128];
1987
1988- sfb_->sfb_file = (int) gds__temp_file(FALSE, SCRATCH, file_name);
1989+ sfb_->sfb_file = (int)(IPTR) gds__temp_file(FALSE, SCRATCH, file_name);
1990 if (sfb_->sfb_file == -1)
1991 SORT_error(tdbb->tdbb_status_vector, sfb_, "open", isc_io_error,
1992 errno);
1993--- Firebird.org/src/jrd/sort.cpp~ 2003-12-24 14:02:01.000000000 +0100
1994+++ Firebird/src/jrd/sort.cpp 2006-03-28 19:57:36.897304250 +0200
1995@@ -1788,7 +1788,7 @@
1996 /* Create a scratch file */
1997
1998 sfb->sfb_file =
1999- (int) gds__temp_file(FALSE, SCRATCH, file_name,
2000+ (int)(IPTR) gds__temp_file(FALSE, SCRATCH, file_name,
2001 sfb->sfb_dls->dls_directory, TRUE);
2002
2003 /* allocate the file name even if the file is not open,
This page took 0.425036 seconds and 4 git commands to generate.