@@ -105,13 +105,13 @@ delete(PG_FUNCTION_ARGS)
105105{
106106HStore * hs = PG_GETARG_HS (0 );
107107text * key = PG_GETARG_TEXT_P (1 );
108- HStore * out = palloc (hs -> len );
108+ HStore * out = palloc (VARSIZE ( hs ) );
109109char * ptrs ,
110110* ptrd ;
111111HEntry * es ,
112112* ed ;
113113
114- out -> len = hs -> len ;
114+ SET_VARSIZE ( out , VARSIZE ( hs )) ;
115115out -> size = hs -> size ;/* temporary! */
116116
117117ptrs = STRPTR (hs );
@@ -142,7 +142,7 @@ delete(PG_FUNCTION_ARGS)
142142out -> size = ed - ARRPTR (out );
143143
144144memmove (STRPTR (out ),ptrd ,buflen );
145- out -> len = CALCDATASIZE (out -> size ,buflen );
145+ SET_VARSIZE ( out , CALCDATASIZE (out -> size ,buflen ) );
146146}
147147
148148
@@ -159,15 +159,15 @@ hs_concat(PG_FUNCTION_ARGS)
159159{
160160HStore * s1 = PG_GETARG_HS (0 );
161161HStore * s2 = PG_GETARG_HS (1 );
162- HStore * out = palloc (s1 -> len + s2 -> len );
162+ HStore * out = palloc (VARSIZE ( s1 ) + VARSIZE ( s2 ) );
163163char * ps1 ,
164164* ps2 ,
165165* pd ;
166166HEntry * es1 ,
167167* es2 ,
168168* ed ;
169169
170- out -> len = s1 -> len + s2 -> len ;
170+ SET_VARSIZE ( out , VARSIZE ( s1 ) + VARSIZE ( s2 )) ;
171171out -> size = s1 -> size + s2 -> size ;
172172
173173ps1 = STRPTR (s1 );
@@ -256,7 +256,7 @@ hs_concat(PG_FUNCTION_ARGS)
256256out -> size = ed - ARRPTR (out );
257257
258258memmove (STRPTR (out ),pd ,buflen );
259- out -> len = CALCDATASIZE (out -> size ,buflen );
259+ SET_VARSIZE ( out , CALCDATASIZE (out -> size ,buflen ) );
260260}
261261
262262PG_FREE_IF_COPY (s1 ,0 );
@@ -277,7 +277,7 @@ tconvert(PG_FUNCTION_ARGS)
277277
278278len = CALCDATASIZE (1 ,VARSIZE (key )+ VARSIZE (val )- 2 * VARHDRSZ );
279279out = palloc (len );
280- out -> len = len ;
280+ SET_VARSIZE ( out , len ) ;
281281out -> size = 1 ;
282282
283283ARRPTR (out )-> keylen = VARSIZE (key )- VARHDRSZ ;
@@ -399,8 +399,8 @@ setup_firstcall(FuncCallContext *funcctx, HStore * hs)
399399
400400st = (AKStore * )palloc (sizeof (AKStore ));
401401st -> i = 0 ;
402- st -> hs = (HStore * )palloc (hs -> len );
403- memcpy (st -> hs ,hs ,hs -> len );
402+ st -> hs = (HStore * )palloc (VARSIZE ( hs ) );
403+ memcpy (st -> hs ,hs ,VARSIZE ( hs ) );
404404
405405funcctx -> user_fctx = (void * )st ;
406406MemoryContextSwitchTo (oldcontext );
@@ -568,8 +568,8 @@ each(PG_FUNCTION_ARGS)
568568oldcontext = MemoryContextSwitchTo (funcctx -> multi_call_memory_ctx );
569569st = (AKStore * )palloc (sizeof (AKStore ));
570570st -> i = 0 ;
571- st -> hs = (HStore * )palloc (hs -> len );
572- memcpy (st -> hs ,hs ,hs -> len );
571+ st -> hs = (HStore * )palloc (VARSIZE ( hs ) );
572+ memcpy (st -> hs ,hs ,VARSIZE ( hs ) );
573573funcctx -> user_fctx = (void * )st ;
574574
575575tupdesc = RelationNameGetTupleDesc ("hs_each" );