mirror of
https://github.com/MariaDB/server.git
synced 2025-02-01 11:31:51 +01:00
branches/zip:
Add const qualifier to the value returned by ha_storage_put(). It must not be changed as this will invalidate the hash.
This commit is contained in:
parent
20d7ea9851
commit
795a17980d
3 changed files with 9 additions and 7 deletions
|
@ -22,7 +22,7 @@ Created September 22, 2007 Vasil Dimov
|
|||
Retrieves a data from a storage. If it is present, a pointer to the
|
||||
stored copy of data is returned, otherwise NULL is returned. */
|
||||
static
|
||||
void*
|
||||
const void*
|
||||
ha_storage_get(
|
||||
/*===========*/
|
||||
ha_storage_t* storage, /* in: hash storage */
|
||||
|
@ -62,7 +62,7 @@ same data chunk is already present, then pointer to it is returned.
|
|||
Data chunks are considered to be equal if len1 == len2 and
|
||||
memcmp(data1, data2, len1) == 0. */
|
||||
|
||||
void*
|
||||
const void*
|
||||
ha_storage_put(
|
||||
/*===========*/
|
||||
ha_storage_t* storage, /* in/out: hash storage */
|
||||
|
@ -71,7 +71,7 @@ ha_storage_put(
|
|||
{
|
||||
void* raw;
|
||||
ha_storage_node_t* node;
|
||||
void* data_copy;
|
||||
const void* data_copy;
|
||||
ulint fold;
|
||||
|
||||
/* check if data chunk is already present */
|
||||
|
@ -91,7 +91,7 @@ ha_storage_put(
|
|||
node = (ha_storage_node_t*) raw;
|
||||
data_copy = (byte*) raw + sizeof(*node);
|
||||
|
||||
memcpy(data_copy, data, data_len);
|
||||
memcpy((byte*) raw + sizeof(*node), data, data_len);
|
||||
|
||||
node->data_len = data_len;
|
||||
node->data = data_copy;
|
||||
|
@ -107,5 +107,7 @@ ha_storage_put(
|
|||
fold, /* key */
|
||||
node); /* add this data to the hash */
|
||||
|
||||
/* the output should not be changed because it will spoil the
|
||||
hash table */
|
||||
return(data_copy);
|
||||
}
|
||||
|
|
|
@ -41,7 +41,7 @@ same string is already present, then pointer to it is returned.
|
|||
Strings are considered to be equal if strcmp(str1, str2) == 0. */
|
||||
|
||||
#define ha_storage_put_str(storage, str) \
|
||||
ha_storage_put((storage), (str), strlen(str) + 1)
|
||||
((const char*) ha_storage_put((storage), (str), strlen(str) + 1))
|
||||
|
||||
/***********************************************************************
|
||||
Copies data into the storage and returns a pointer to the copy. If the
|
||||
|
@ -49,7 +49,7 @@ same data chunk is already present, then pointer to it is returned.
|
|||
Data chunks are considered to be equal if len1 == len2 and
|
||||
memcmp(data1, data2, len1) == 0. */
|
||||
|
||||
void*
|
||||
const void*
|
||||
ha_storage_put(
|
||||
/*===========*/
|
||||
ha_storage_t* storage, /* in/out: hash storage */
|
||||
|
|
|
@ -24,7 +24,7 @@ struct ha_storage_struct {
|
|||
typedef struct ha_storage_node_struct ha_storage_node_t;
|
||||
struct ha_storage_node_struct {
|
||||
ulint data_len;/* length of the data */
|
||||
void* data; /* pointer to data */
|
||||
const void* data; /* pointer to data */
|
||||
ha_storage_node_t* next; /* next node in hash chain */
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue