Breakpoint 1, gistpenalty (giststate=0xbfc254e4, attno=0, key1=0xbfc252d4,
isNull1=0 '\0', key2=0xbfc24fd4, isNull2=0 '\0',
penalty=0xbfc24fb0) at gistutil.c:821
821 FunctionCall3(&giststate->penaltyFn[attno],
(gdb) p key1
$1 = (GISTENTRY *) 0xbfc252d4
(gdb) p key1->key
$2 = 0
(gdb) p key2->key
$3 = 138721324
Sorry, key1 and key2 are just GISTENTRY pointers.
so, as I can see this is NULL indeed, so my _penalty function is ok.