From 86d78021a403738f9a6a647fa327d7e7871aa11c Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Sat, 21 Aug 2004 00:09:10 +0000 Subject: Whack btree_gist code around until it has some small hope of building on non-gcc compilers. --- contrib/btree_gist/btree_text.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'contrib/btree_gist/btree_text.c') diff --git a/contrib/btree_gist/btree_text.c b/contrib/btree_gist/btree_text.c index 0ce847369e2..fac9f554c0f 100644 --- a/contrib/btree_gist/btree_text.c +++ b/contrib/btree_gist/btree_text.c @@ -65,13 +65,15 @@ static bytea * gbt_text_xfrm ( bytea * leaf ) { bytea * out = leaf; - int32 ilen = VARSIZE (leaf) - VARHDRSZ; int32 olen ; - char sin[ilen+1]; - char * sou = NULL; - memcpy ( (void*)&sin[0], (void*) VARDATA(leaf) ,ilen ); + char * sin; + char * sou; + + sin = palloc(ilen + 1); + memcpy (sin, (void*) VARDATA(leaf) ,ilen ); sin[ilen] = '\0'; + olen = strxfrm ( NULL, &sin[0], 0 ) + 1; sou = palloc ( olen ); olen = strxfrm ( sou , &sin[0] , olen ); @@ -80,7 +82,9 @@ gbt_text_xfrm ( bytea * leaf ) out->vl_len = olen+1; memcpy( (void*) VARDATA(out), sou, olen-VARHDRSZ ); ((char*)out)[olen] = '\0'; + pfree(sou); + pfree(sin); return out; } -- cgit v1.2.3