--- firebird-1.5.2.4731/src/jrd/met.epp.orig 2004-09-15 00:01:51.000000000 +0200 +++ firebird-1.5.2.4731/src/jrd/met.epp 2005-12-24 12:57:15.942243120 +0100 @@ -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)(size_t) (*references->frgn_reference_ids) [index_number]) { idx->idx_primary_relation = - (USHORT) (*references->frgn_relations)[index_number]; + (USHORT)(size_t) (*references->frgn_relations)[index_number]; idx->idx_primary_index = - (UCHAR) (*references->frgn_indexes)[index_number]; + (UCHAR)(size_t) (*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)(size_t) (*dependencies->prim_reference_ids) [index_number]) { idx->idx_foreign_primaries = @@ -4542,7 +4542,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)(size_t) node->nod_arg[e_dep_object_type]; relation = NULL; procedure = NULL; switch (dpdo_type) { @@ -4579,7 +4579,7 @@ { if (field_node->nod_type == nod_field) { - fld_id = (SSHORT) field_node->nod_arg[0]; + fld_id = (SSHORT)(size_t) field_node->nod_arg[0]; if (relation) { if ( (field = MET_get_field(relation, fld_id)) ) --- firebird-1.5.2.4731/src/jrd/blb.cpp.orig 2004-04-27 03:44:57.000000000 +0200 +++ firebird-1.5.2.4731/src/jrd/blb.cpp 2005-12-24 13:08:13.803233048 +0100 @@ -860,7 +860,7 @@ request = tdbb->tdbb_request; source = (BID) from_desc->dsc_address; destination = (BID) to_desc->dsc_address; - id = (USHORT) field->nod_arg[e_fld_id]; + id = (USHORT)(size_t) field->nod_arg[e_fld_id]; rpb = &request->req_rpb[(int) field->nod_arg[e_fld_stream]]; relation = rpb->rpb_relation; record = rpb->rpb_record; --- firebird-1.5.2.4731/src/jrd/cmp.cpp.orig 2004-12-03 08:59:29.000000000 +0100 +++ firebird-1.5.2.4731/src/jrd/cmp.cpp 2005-12-24 13:17:54.373972880 +0100 @@ -487,7 +487,7 @@ /* Clone the request */ n = - (USHORT) ((request->req_impure_size - REQ_SIZE + REQ_TAIL - 1) / + (USHORT)(size_t) ((request->req_impure_size - REQ_SIZE + REQ_TAIL - 1) / REQ_TAIL); clone = FB_NEW_RPT(*request->req_pool, n) jrd_req(request->req_pool); (*vector)[level] = (BLK) clone; @@ -958,9 +958,9 @@ FMT format; USHORT id; - id = (USHORT) node->nod_arg[e_fld_id]; + id = (USHORT)(size_t) node->nod_arg[e_fld_id]; format = - CMP_format(tdbb, csb, (USHORT) node->nod_arg[e_fld_stream]); + CMP_format(tdbb, csb, (USHORT)(size_t) 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)(size_t) sub-> nod_arg[e_fld_stream]].csb_relation; - id = (USHORT) sub->nod_arg[e_fld_id]; + id = (USHORT)(size_t) 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 */ @@ -2651,8 +2651,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)(size_t) input->nod_arg[e_fld_id]; + stream = (USHORT)(size_t) input->nod_arg[e_fld_stream]; if (remap_fld) { JRD_REL relation; JRD_FLD field; @@ -2660,7 +2660,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)(size_t) field->fld_source->nod_arg[e_fld_id]; } if (remap) stream = remap[stream]; @@ -2771,7 +2771,7 @@ node->nod_type = input->nod_type; node->nod_count = 0; - stream = (USHORT) input->nod_arg[e_rel_stream]; + stream = (USHORT)(size_t) 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 @@ -2851,7 +2851,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)(size_t) 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 */ @@ -2861,7 +2861,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)(size_t)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; @@ -2874,7 +2874,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)(size_t) input->nod_arg[e_agg_stream]; assert(stream <= MAX_STREAMS); new_stream = (*csb)->csb_n_stream++; assert(new_stream <= MAX_STREAMS); @@ -2903,7 +2903,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)(size_t) 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 */ @@ -3041,7 +3041,7 @@ csb_repeat *tail; JRD_REL relation; - stream = (USHORT) node->nod_arg[e_rel_stream]; + stream = (USHORT)(size_t) 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) ) @@ -3269,7 +3269,7 @@ JRD_FLD field; UCHAR *map, local_map[MAP_LENGTH]; - stream = (USHORT) node->nod_arg[e_fld_stream]; + stream = (USHORT)(size_t) 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 @@ -3290,7 +3290,7 @@ if (!(relation = tail->csb_relation) || !(field = MET_get_field(relation, - (USHORT) node->nod_arg[e_fld_id]))) break; + (USHORT)(size_t) node->nod_arg[e_fld_id]))) break; /* if this is a modify or store, check REFERENCES access to any foreign keys. */ @@ -3402,9 +3402,9 @@ sub = node->nod_arg[e_asgn_from]; if (sub->nod_type == nod_field) { - stream = (USHORT) sub->nod_arg[e_fld_stream]; + stream = (USHORT)(size_t) sub->nod_arg[e_fld_stream]; field = MET_get_field((*csb)->csb_rpt[stream].csb_relation, - (USHORT) sub->nod_arg[e_fld_id]); + (USHORT)(size_t) sub->nod_arg[e_fld_id]); if (field) node->nod_arg[e_asgn_missing2] = field->fld_missing_value; } @@ -3412,12 +3412,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)(size_t) 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)(size_t) 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; @@ -3431,7 +3431,7 @@ break; case nod_modify: - stream = (USHORT) node->nod_arg[e_mod_new_stream]; + stream = (USHORT)(size_t) node->nod_arg[e_mod_new_stream]; tail = &(*csb)->csb_rpt[stream]; tail->csb_flags |= csb_modify; pass1_modify(tdbb, csb, node); @@ -3439,13 +3439,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)(size_t) 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)(size_t) node->nod_arg[e_erase_stream]; tail = &(*csb)->csb_rpt[stream]; tail->csb_flags |= csb_erase; pass1_erase(tdbb, csb, node); @@ -3461,12 +3461,12 @@ case nod_store: sub = node->nod_arg[e_sto_relation]; - stream = (USHORT) sub->nod_arg[e_rel_stream]; + stream = (USHORT)(size_t) 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)(size_t) 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 = @@ -3493,7 +3493,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)(size_t) 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] = @@ -3521,7 +3521,7 @@ NOD_T type; type = node->nod_type; - stream = (USHORT) node->nod_arg[0]; + stream = (USHORT)(size_t) node->nod_arg[0]; if (!(*csb)->csb_rpt[stream].csb_map) return node; @@ -3556,7 +3556,7 @@ break; case nod_cardinality: - stream = (USHORT) node->nod_arg[e_card_stream]; + stream = (USHORT)(size_t) node->nod_arg[e_card_stream]; (*csb)->csb_rpt[stream].csb_flags |= csb_compute; break; @@ -3623,7 +3623,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)(size_t) node->nod_arg[e_erase_stream]; tail = &(*csb)->csb_rpt[stream]; tail->csb_flags |= csb_erase; relation = (*csb)->csb_rpt[stream].csb_relation; @@ -3691,7 +3691,7 @@ parent = relation; parent_stream = stream; - new_stream = (USHORT) source->nod_arg[e_rel_stream]; + new_stream = (USHORT)(size_t) source->nod_arg[e_rel_stream]; node->nod_arg[e_erase_stream] = (JRD_NOD) (SLONG) map[new_stream]; } } @@ -3738,7 +3738,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)(size_t) (JRD_NOD) (field->fld_source)->nod_arg[e_fld_id]; else new_id = id; } @@ -3800,8 +3800,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)(size_t) node->nod_arg[e_mod_org_stream]; + new_stream = (USHORT)(size_t) 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; @@ -3840,7 +3840,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)(size_t) source->nod_arg[e_rel_stream]; stream = map[stream]; view_stream = new_stream; @@ -3848,18 +3848,18 @@ map = alloc_map(tdbb, csb, - (SSHORT) node->nod_arg[e_mod_new_stream]); + (SSHORT)(size_t) 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)(size_t) 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)(size_t) 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 = @@ -3872,14 +3872,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)(size_t) 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)(size_t) 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]; } @@ -4126,7 +4126,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)(size_t)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); @@ -4158,7 +4158,7 @@ view->rel_id); source->nod_arg[e_rel_view] = (JRD_NOD) parent_view; - stream = (USHORT) source->nod_arg[e_rel_stream]; + stream = (USHORT)(size_t) 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 */ @@ -4173,7 +4173,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)(size_t) source->nod_arg[e_rel_context]) { element->csb_alias = (*vcx_ptr)->vcx_context_name; break; } @@ -4317,7 +4317,7 @@ for (;;) { original = node->nod_arg[e_sto_relation]; - stream = (USHORT) original->nod_arg[e_rel_stream]; + stream = (USHORT)(size_t) original->nod_arg[e_rel_stream]; tail = &(*csb)->csb_rpt[stream]; tail->csb_flags |= csb_store; relation = (*csb)->csb_rpt[stream].csb_relation; @@ -4371,7 +4371,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)(size_t) 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] = @@ -4719,9 +4719,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)(size_t) 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)(size_t) node->nod_arg[e_mod_new_stream]; csb->csb_rpt[stream].csb_flags |= csb_active; } @@ -4733,9 +4733,9 @@ if (node->nod_type == nod_modify) { /* AB: Remove the previous flags */ - stream = (USHORT) node->nod_arg[e_mod_org_stream]; + stream = (USHORT)(size_t) 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)(size_t) node->nod_arg[e_mod_new_stream]; csb->csb_rpt[stream].csb_flags &= ~csb_active; } @@ -4834,7 +4834,7 @@ FMT format; fmt::fmt_desc_iterator desc; - stream = (USHORT) node->nod_arg[e_mod_org_stream]; + stream = (USHORT)(size_t) 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(); @@ -4859,13 +4859,13 @@ break; case nod_erase: - stream = (USHORT) node->nod_arg[e_erase_stream]; + stream = (USHORT)(size_t) 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)(size_t) node->nod_arg[e_fld_stream]; + id = (USHORT)(size_t) 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); @@ -4939,7 +4939,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)(size_t) 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); @@ -5048,7 +5048,7 @@ node = *ptr; if (node->nod_type == nod_relation) { - USHORT stream = (USHORT) node->nod_arg[e_rel_stream]; + USHORT stream = (USHORT)(size_t) node->nod_arg[e_rel_stream]; csb->csb_rpt[stream].csb_flags |= csb_active; pass2(tdbb, csb, node, (JRD_NOD) rse); } @@ -5056,12 +5056,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)(size_t) 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)(size_t) 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); @@ -5116,7 +5116,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)(size_t) node->nod_arg[e_uni_stream]; format = &csb->csb_rpt[id].csb_format; /* Process alternating rse and map blocks */ @@ -5158,7 +5158,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)(size_t) (*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); @@ -5211,7 +5211,7 @@ /* find the tail for the relation specified in the rse */ - stream = (USHORT) plan_relation_node->nod_arg[e_rel_stream]; + stream = (USHORT)(size_t) plan_relation_node->nod_arg[e_rel_stream]; tail = &csb->csb_rpt[stream]; /* if the plan references a view, find the real base relation @@ -5447,15 +5447,15 @@ ptr < end; ptr++) { node = *ptr; if (node->nod_type == nod_relation) { - USHORT stream = (USHORT) node->nod_arg[e_rel_stream]; + USHORT stream = (USHORT)(size_t) 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)(size_t) 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)(size_t) node->nod_arg[e_agg_stream]; assert(stream <= MAX_STREAMS); csb->csb_rpt[stream].csb_flags &= ~csb_active; } @@ -5551,7 +5551,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)(size_t) field->nod_arg[e_fld_id]; if (id >= format->fmt_count) { format->fmt_desc.resize(id + 1); } @@ -5687,13 +5687,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)(size_t) 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)(size_t) sub->nod_arg[e_rel_stream])) return TRUE; /* do not mark as variant */ } --- firebird-1.5.2.4731/src/jrd/evl.cpp.orig 2004-10-12 17:34:39.000000000 +0200 +++ firebird-1.5.2.4731/src/jrd/evl.cpp 2005-12-24 13:31:35.388159752 +0100 @@ -289,7 +289,7 @@ // 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], + EVL_field(0, record, (USHORT)(size_t) 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)(size_t) node->nod_arg[1]; numbers = desc->dsc_address; numbers += id * sizeof(SLONG); MOVE_FAST(numbers, &rel_dbkey, sizeof(SLONG)); @@ -856,9 +856,9 @@ * 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)(size_t) node->nod_arg[e_fld_stream]].rpb_relation, record, - (USHORT) node->nod_arg[e_fld_id], + (USHORT)(size_t) node->nod_arg[e_fld_id], &impure->vlu_desc)) { request->req_flags |= req_null; @@ -1725,7 +1725,7 @@ { from = (*ptr)->nod_arg[e_asgn_from]; field = (*ptr)->nod_arg[e_asgn_to]; - id = (USHORT) field->nod_arg[e_fld_id]; + id = (USHORT)(size_t) field->nod_arg[e_fld_id]; record = request->req_rpb[(int) field->nod_arg[e_fld_stream]].rpb_record; impure = (VLUX) ((SCHAR *) request + from->nod_impure); --- firebird-1.5.2.4731/src/jrd/exe.cpp.orig 2004-11-06 07:07:51.000000000 +0100 +++ firebird-1.5.2.4731/src/jrd/exe.cpp 2005-12-24 13:33:42.787792064 +0100 @@ -375,7 +375,7 @@ if (to->nod_type == nod_field) { - SSHORT id = (USHORT) to->nod_arg[e_fld_id]; + SSHORT id = (USHORT)(size_t) to->nod_arg[e_fld_id]; REC record = request->req_rpb[(int) to->nod_arg[e_fld_stream]].rpb_record; if (null) { SET_NULL(record, id); @@ -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)(size_t) 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)(size_t) 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)(size_t) message->nod_arg[e_msg_number]) ERR_post(gds_req_sync, 0); if (length != format->fmt_length) @@ -2016,7 +2016,7 @@ case jrd_req::req_evaluate: if (transaction != dbb->dbb_sys_trans) { - UCHAR operation = (UCHAR) node->nod_arg[e_sav_operation]; + UCHAR operation = (UCHAR)(size_t) node->nod_arg[e_sav_operation]; TEXT * node_savepoint_name = (TEXT*) node->nod_arg[e_sav_name]; // Skip the savepoint created by EXE_start @@ -2329,7 +2329,7 @@ break; case jrd_req::req_unwind: - if ((request->req_label == (USHORT) node->nod_arg[e_lbl_label]) && + if ((request->req_label == (USHORT)(size_t) 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; @@ -2343,7 +2343,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)(size_t) node->nod_arg[0]; node = node->nod_parent; break; @@ -2795,11 +2795,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)(size_t) 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)(size_t) node->nod_arg[e_mod_new_stream]; new_rpb = &request->req_rpb[new_stream]; #ifdef PC_ENGINE @@ -3796,7 +3796,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)(size_t) node->nod_arg[e_sto_relation]->nod_arg[e_rel_stream]; RPB* rpb = &request->req_rpb[stream]; JRD_REL relation = rpb->rpb_relation; @@ -4202,8 +4202,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)(size_t) node->nod_arg[e_fld_stream]; + id = (USHORT)(size_t) node->nod_arg[e_fld_id]; relation = request->req_rpb[stream].rpb_relation; if ((vector = relation->rel_fields) && --- firebird-1.5.2.4731/src/jrd/ext.cpp.orig 2003-06-16 17:42:58.000000000 +0200 +++ firebird-1.5.2.4731/src/jrd/ext.cpp 2005-12-24 13:34:26.333172160 +0100 @@ -266,7 +266,7 @@ record = rpb->rpb_record; format = record->rec_format; - offset = (SSHORT) format->fmt_desc[0].dsc_address; + offset = (SSHORT)(size_t) format->fmt_desc[0].dsc_address; p = record->rec_data + offset; l = record->rec_length - offset; @@ -528,7 +528,7 @@ } } - offset = (USHORT) format->fmt_desc[0].dsc_address; + offset = (USHORT)(size_t) format->fmt_desc[0].dsc_address; p = record->rec_data + offset; l = record->rec_length - offset; --- firebird-1.5.2.4731/src/jrd/idx.cpp.orig 2004-09-15 00:01:50.000000000 +0200 +++ firebird-1.5.2.4731/src/jrd/idx.cpp 2005-12-24 13:35:08.531757000 +0100 @@ -1051,12 +1051,12 @@ index_number < idx->idx_foreign_primaries->count(); index_number++) { if (idx->idx_id != - (UCHAR) (*idx->idx_foreign_primaries)[index_number]) continue; + (UCHAR)(size_t) (*idx->idx_foreign_primaries)[index_number]) continue; partner_relation = MET_relation(tdbb, (int) (*idx->idx_foreign_relations)[index_number]); index_id = - (USHORT) (*idx->idx_foreign_indexes)[index_number]; + (USHORT)(size_t) (*idx->idx_foreign_indexes)[index_number]; if ( (result = check_partner_index(tdbb, relation, record, transaction, idx, partner_relation, index_id)) ) --- firebird-1.5.2.4731/src/jrd/opt.cpp.orig 2004-11-27 16:57:53.000000000 +0100 +++ firebird-1.5.2.4731/src/jrd/opt.cpp 2005-12-24 13:42:07.610047416 +0100 @@ -380,7 +380,7 @@ if (node->nod_type != nod_rse) { - stream = (USHORT) node->nod_arg[STREAM_INDEX(node)]; + stream = (USHORT)(size_t) 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)(size_t) 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)(size_t) 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)(size_t) 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)(size_t) 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)(size_t) 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)(size_t) 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)(size_t) (*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)(size_t) (*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)(size_t) node->nod_arg[e_fld_stream]; SET_DEP_BIT(dependencies, n); return; case nod_dbkey: - n = (USHORT) node->nod_arg[0]; + n = (USHORT)(size_t) 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)(size_t) (*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)(size_t) 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)(size_t) 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)(size_t) 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)(size_t) 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)(size_t) 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)(size_t) node->nod_arg[e_fld_stream] != stream + || (USHORT)(size_t) 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)(size_t) 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)(size_t)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)(size_t) 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)(size_t) node->nod_arg[e_fld_stream] == *ptr + && (USHORT)(size_t) 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)(size_t) node->nod_arg[e_fld_stream]; + map_item->smb_field_id = (USHORT)(size_t) 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)(size_t) LLS_POP(&id_stack); + stream = (USHORT)(size_t) 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)(size_t) 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)(size_t) field->nod_arg[e_fld_stream] != stream || + (USHORT)(size_t) 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)(size_t) field->nod_arg[e_fld_stream] != stream || + (USHORT)(size_t) 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)(size_t) * 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)(size_t) * (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)(size_t) 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)(size_t) 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)(size_t) 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)(size_t) 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)(size_t) node->nod_arg[STREAM_INDEX(node)]; csb->csb_rpt[stream].csb_flags &= ~csb_active; } else --- firebird-1.5.2.4731/src/jrd/par.cpp.orig 2004-06-19 10:11:45.000000000 +0200 +++ firebird-1.5.2.4731/src/jrd/par.cpp 2005-12-24 13:43:37.660357688 +0100 @@ -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)(size_t) node->nod_arg[e_agg_stream]); break; case blr_group_by: --- firebird-1.5.2.4731/src/jrd/rse.cpp.orig 2004-10-09 16:14:53.000000000 +0200 +++ firebird-1.5.2.4731/src/jrd/rse.cpp 2005-12-24 13:47:46.019601344 +0100 @@ -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)(size_t) * ptr; ++ptr <= end;) + request->req_rpb[(USHORT)(size_t) * 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)(size_t) 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)(size_t) 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)(size_t) 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); --- firebird-1.5.2.4731/src/qli/command.cpp.orig 2003-04-03 11:34:54.000000000 +0200 +++ firebird-1.5.2.4731/src/qli/command.cpp 2005-12-24 15:04:12.438359712 +0100 @@ -311,32 +311,32 @@ ptr = node->syn_arg; for (i = 0; i < node->syn_count; i++) { - foo = (USHORT) * ptr++; + foo = (USHORT)(size_t) * ptr++; sw = (ENUM set_t) foo; value = *ptr++; switch (sw) { case set_blr: - QLI_blr = (USHORT) value; + QLI_blr = (USHORT)(size_t) value; break; case set_statistics: - QLI_statistics = (USHORT) value; + QLI_statistics = (USHORT)(size_t) value; break; case set_columns: - QLI_name_columns = QLI_columns = (USHORT) value; + QLI_name_columns = QLI_columns = (USHORT)(size_t) value; break; case set_lines: - QLI_lines = (USHORT) value; + QLI_lines = (USHORT)(size_t) value; break; case set_semi: - QLI_semi = (USHORT) value; + QLI_semi = (USHORT)(size_t) value; break; case set_echo: - QLI_echo = (USHORT) value; + QLI_echo = (USHORT)(size_t) value; break; case set_form: @@ -399,7 +399,7 @@ break; case set_count: - QLI_count = (USHORT) value; + QLI_count = (USHORT)(size_t) value; break; case set_charset: --- firebird-1.5.2.4731/src/qli/expand.cpp.orig 2003-04-03 11:34:52.000000000 +0200 +++ firebird-1.5.2.4731/src/qli/expand.cpp 2005-12-24 15:04:49.271760184 +0100 @@ -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)(size_t) 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]; --- firebird-1.5.2.4731/src/qli/meta.epp.orig 2004-09-17 22:34:59.000000000 +0200 +++ firebird-1.5.2.4731/src/qli/meta.epp 2005-12-24 15:20:58.941348000 +0100 @@ -3795,7 +3795,7 @@ RLB rlb; - privileges = (USHORT) node->syn_arg[s_grant_privileges]; + privileges = (USHORT)(size_t) 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; --- firebird-1.5.2.4731/src/burp/burp.cpp.orig 2004-01-07 11:10:18.000000000 +0100 +++ firebird-1.5.2.4731/src/burp/burp.cpp 2005-12-24 13:57:23.889751728 +0100 @@ -1606,7 +1606,7 @@ #ifndef WIN_NT signal(SIGPIPE, SIG_IGN); #endif - fil->fil_fd = reinterpret_cast(GBAK_STDOUT_DESC); + fil->fil_fd = (DESC)(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(GBAK_STDIN_DESC); + fil->fil_fd = (DESC)(GBAK_STDIN_DESC); tdgbl->file_desc = fil->fil_fd; tdgbl->gbl_sw_files = fil->fil_next; } --- firebird-1.5.2.4731/src/dsql/parse.cpp.orig 2004-01-31 14:31:48.000000000 +0100 +++ firebird-1.5.2.4731/src/dsql/parse.cpp 2005-12-24 16:11:42.519653768 +0100 @@ -6431,7 +6431,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)(size_t) yyvsp[-2]; } break; case 80: { yyval = (DSQL_NOD) NULL; } @@ -7551,27 +7551,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)(size_t) 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)(size_t) yyvsp[-3]; + lex.g_field->fld_sub_type = (USHORT)(size_t) 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)(size_t) yyvsp[-1]; } break; case 510: { - lex.g_field->fld_seg_length = (USHORT) yyvsp[0]; + lex.g_field->fld_seg_length = (USHORT)(size_t) yyvsp[0]; } break; case 511: @@ -7581,7 +7581,7 @@ break; case 512: { - lex.g_field->fld_sub_type = (USHORT) yyvsp[0]; + lex.g_field->fld_sub_type = (USHORT)(size_t) yyvsp[0]; } break; case 513: @@ -7602,7 +7602,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)(size_t) yyvsp[-1]; lex.g_field->fld_flags |= FLD_national; } break; @@ -7616,14 +7616,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)(size_t) 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)(size_t) yyvsp[-1]; } break; case 521: @@ -7635,7 +7635,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)(size_t) yyvsp[-1]; } break; case 531: @@ -7715,7 +7715,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)(size_t) yyvsp[-1]; } break; case 536: @@ -7775,8 +7775,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)(size_t) yyvsp[-3]; + lex.g_field->fld_scale = - (SSHORT)(size_t) yyvsp[-1]; } break; case 539: @@ -7942,7 +7942,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)(size_t) yyvsp[-1] | (SSHORT)(size_t) yyvsp[0]), (SSHORT) 0, NULL); } break; case 603: { yyval = 0; } --- firebird-1.5.2.4731/src/gpre/cmd.cpp.orig 2003-10-30 23:25:53.000000000 +0100 +++ firebird-1.5.2.4731/src/gpre/cmd.cpp 2005-12-24 12:30:50.312295512 +0100 @@ -204,7 +204,7 @@ case ACT_drop_shadow: put_numeric(request, gds_dyn_delete_shadow, - (SSHORT) action->act_object); + (SSHORT)(size_t) action->act_object); STUFF_END; break; --- firebird-1.5.2.4731/src/common/classes/alloc.h.orig 2004-09-17 22:34:27.000000000 +0200 +++ firebird-1.5.2.4731/src/common/classes/alloc.h 2005-12-24 12:27:24.200629248 +0100 @@ -242,22 +242,22 @@ void operator delete[](void* mem) throw(); #ifdef DEBUG_GDS_ALLOC -static inline void* operator new(size_t s, Firebird::MemoryPool& pool, char* file, int line) { +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) { +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) { +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) { +inline void* operator new[](size_t s, Firebird::MemoryPool& pool) { return pool.allocate(s); // return pool.calloc(s); }