summaryrefslogtreecommitdiff
path: root/mysys/hash.c
diff options
context:
space:
mode:
authorunknown <monty@hundin.mysql.fi>2002-11-09 13:26:46 +0200
committerunknown <monty@hundin.mysql.fi>2002-11-09 13:26:46 +0200
commit212fe9d13ed51de7e858dedd2af71b115270af14 (patch)
treedc4bb2a2343e6494e99b3429fc1247fa2dd18281 /mysys/hash.c
parentb3a8b8bd193dc9b22b8d5bc28c894c49f6153647 (diff)
downloadmariadb-git-212fe9d13ed51de7e858dedd2af71b115270af14.tar.gz
Portability fixes for HP compiler and HPUX11
Docs/internals.texi: Added protocol information (needs to be converted to texi and merged with the old documentation) configure.in: Updates for HP compiler (cc) include/my_global.h: Add option to handle bugs in 'inline' for HP compiler libmysql/password.c: Portability fix (for HP compiler) mysys/hash.c: Portability fix (for HP compiler) mysys/my_static.c: Portability fix (for HPUX11) mysys/my_static.h: Portability fix (for HPUX11) mysys/my_tempnam.c: Portability fix (for HPUX11) sql/sql_analyse.cc: Fixed bug in decimal handling
Diffstat (limited to 'mysys/hash.c')
-rw-r--r--mysys/hash.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/mysys/hash.c b/mysys/hash.c
index eaea6d7503f..3afd31a079b 100644
--- a/mysys/hash.c
+++ b/mysys/hash.c
@@ -82,7 +82,12 @@ void hash_free(HASH *hash)
/* some helper functions */
-inline byte*
+/*
+ This function is char* instead of byte* as HPUX11 compiler can't
+ handle inline functions that are not defined as native types
+*/
+
+inline char*
hash_key(HASH *hash,const byte *record,uint *length,my_bool first)
{
if (hash->get_key)
@@ -103,7 +108,7 @@ static uint hash_rec_mask(HASH *hash,HASH_LINK *pos,uint buffmax,
uint maxlength)
{
uint length;
- byte *key=hash_key(hash,pos->data,&length,0);
+ byte *key= (byte*) hash_key(hash,pos->data,&length,0);
return hash_mask((*hash->calc_hashnr)(key,length),buffmax,maxlength);
}
@@ -180,10 +185,10 @@ uint calc_hashnr_caseup(const byte *key, uint len)
#ifndef __SUNPRO_C /* SUNPRO can't handle this */
inline
#endif
-uint rec_hashnr(HASH *hash,const byte *record)
+unsigned int rec_hashnr(HASH *hash,const byte *record)
{
uint length;
- byte *key=hash_key(hash,record,&length,0);
+ byte *key= (byte*) hash_key(hash,record,&length,0);
return (*hash->calc_hashnr)(key,length);
}
@@ -270,7 +275,7 @@ static void movelink(HASH_LINK *array,uint find,uint next_link,uint newlink)
static int hashcmp(HASH *hash,HASH_LINK *pos,const byte *key,uint length)
{
uint rec_keylength;
- byte *rec_key=hash_key(hash,pos->data,&rec_keylength,1);
+ byte *rec_key= (byte*) hash_key(hash,pos->data,&rec_keylength,1);
return (length && length != rec_keylength) ||
(hash->flags & HASH_CASE_INSENSITIVE ?
my_casecmp(rec_key,key,rec_keylength) :