6
6
*
7
7
*
8
8
* IDENTIFICATION
9
- * $Header: /cvsroot/pgsql/src/backend/access/gist/gist.c,v 1.54 2000/05/30 00:49:39 momjian Exp $
9
+ * $Header: /cvsroot/pgsql/src/backend/access/gist/gist.c,v 1.55 2000/05/30 04:24:28 tgl Exp $
10
10
*
11
11
*-------------------------------------------------------------------------
12
12
*/
@@ -551,10 +551,16 @@ gistAdjustKeys(Relation r,
551
551
ev1p = & ((GISTENTRY * ) VARDATA (evec ))[1 ];
552
552
553
553
/* form union of decompressed entries */
554
- datum = (* fmgr_faddr (& giststate -> unionFn )) (evec , & datumsize );
554
+ datum = (char * )
555
+ DatumGetPointer (FunctionCall2 (& giststate -> unionFn ,
556
+ PointerGetDatum (evec ),
557
+ PointerGetDatum (& datumsize )));
555
558
556
559
/* did union leave decompressed version of oldud unchanged? */
557
- (* fmgr_faddr (& giststate -> equalFn )) (ev0p -> pred , datum , & result );
560
+ FunctionCall3 (& giststate -> equalFn ,
561
+ PointerGetDatum (ev0p -> pred ),
562
+ PointerGetDatum (datum ),
563
+ PointerGetDatum (& result ));
558
564
if (!result )
559
565
{
560
566
TupleDesc td = RelationGetDescr (r );
@@ -727,7 +733,9 @@ gistSplit(Relation r,
727
733
VARSIZE (entryvec ) = (maxoff + 2 ) * sizeof (GISTENTRY ) + VARHDRSZ ;
728
734
729
735
/* now let the user-defined picksplit function set up the split vector */
730
- (* fmgr_faddr (& giststate -> picksplitFn )) (entryvec , & v );
736
+ FunctionCall2 (& giststate -> picksplitFn ,
737
+ PointerGetDatum (entryvec ),
738
+ PointerGetDatum (& v ));
731
739
732
740
/* compress ldatum and rdatum */
733
741
gistcentryinit (giststate , & tmpentry , v .spl_ldatum , (Relation ) NULL ,
@@ -1054,7 +1062,10 @@ gistchoose(Relation r, Page p, IndexTuple it, /* it has compressed entry */
1054
1062
size = IndexTupleSize (datum ) - sizeof (IndexTupleData );
1055
1063
datum += sizeof (IndexTupleData );
1056
1064
gistdentryinit (giststate , & entry , datum , r , p , i , size , FALSE);
1057
- (* fmgr_faddr (& giststate -> penaltyFn )) (& entry , & identry , & usize );
1065
+ FunctionCall3 (& giststate -> penaltyFn ,
1066
+ PointerGetDatum (& entry ),
1067
+ PointerGetDatum (& identry ),
1068
+ PointerGetDatum (& usize ));
1058
1069
if (which_grow < 0 || usize < which_grow )
1059
1070
{
1060
1071
which = i ;
@@ -1237,7 +1248,9 @@ gistdentryinit(GISTSTATE *giststate, GISTENTRY *e, char *pr, Relation r,
1237
1248
gistentryinit (* e , pr , r , pg , o , b , l );
1238
1249
if (giststate -> haskeytype )
1239
1250
{
1240
- dep = (GISTENTRY * ) ((* fmgr_faddr (& giststate -> decompressFn )) (e ));
1251
+ dep = (GISTENTRY * )
1252
+ DatumGetPointer (FunctionCall1 (& giststate -> decompressFn ,
1253
+ PointerGetDatum (e )));
1241
1254
gistentryinit (* e , dep -> pred , dep -> rel , dep -> page , dep -> offset , dep -> bytes ,
1242
1255
dep -> leafkey );
1243
1256
if (dep != e )
@@ -1258,7 +1271,9 @@ gistcentryinit(GISTSTATE *giststate, GISTENTRY *e, char *pr, Relation r,
1258
1271
gistentryinit (* e , pr , r , pg , o , b , l );
1259
1272
if (giststate -> haskeytype )
1260
1273
{
1261
- cep = (GISTENTRY * ) ((* fmgr_faddr (& giststate -> compressFn )) (e ));
1274
+ cep = (GISTENTRY * )
1275
+ DatumGetPointer (FunctionCall1 (& giststate -> compressFn ,
1276
+ PointerGetDatum (e )));
1262
1277
gistentryinit (* e , cep -> pred , cep -> rel , cep -> page , cep -> offset , cep -> bytes ,
1263
1278
cep -> leafkey );
1264
1279
if (cep != e )
0 commit comments