diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2004-08-21 00:09:10 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2004-08-21 00:09:10 +0000 |
commit | 86d78021a403738f9a6a647fa327d7e7871aa11c (patch) | |
tree | 1fb49806c7098da3619970446dac637ff45f2463 /contrib/btree_gist/btree_text.c | |
parent | bf9d9bd2f3a00bc5f01e56e70f46bf21815411f8 (diff) | |
download | postgresql-86d78021a403738f9a6a647fa327d7e7871aa11c.tar.gz postgresql-86d78021a403738f9a6a647fa327d7e7871aa11c.zip |
Whack btree_gist code around until it has some small hope of building
on non-gcc compilers.
Diffstat (limited to 'contrib/btree_gist/btree_text.c')
-rw-r--r-- | contrib/btree_gist/btree_text.c | 12 |
1 files changed, 8 insertions, 4 deletions
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; } |