* implementation needs to be self-contained within this file.
*/
-/* convenience macro to avoid signed overflow for value comparisions */
+/* convenience macro to avoid signed overflow for value comparisons */
#define G_BSEARCH_ARRAY_CMP(v1,v2) ((v1) > (v2) ? +1 : (v1) == (v2) ? 0 : -1)
gconstpointer node_in_array);
static inline GBSearchArray* g_bsearch_array_remove (GBSearchArray *barray,
const GBSearchConfig *bconfig,
- guint index);
+ guint index_);
/* provide uninitialized space at index for node insertion */
static inline GBSearchArray* g_bsearch_array_grow (GBSearchArray *barray,
const GBSearchConfig *bconfig,
size = sizeof (GBSearchArray) + bconfig->sizeof_node;
if (bconfig->flags & G_BSEARCH_ARRAY_ALIGN_POWER2)
size = G_BSEARCH_UPPER_POWER2 (size);
- barray = g_realloc (NULL, size);
+ barray = (GBSearchArray *) g_malloc (size);
memset (barray, 0, sizeof (GBSearchArray));
return barray;
static inline GBSearchArray*
g_bsearch_array_grow (GBSearchArray *barray,
const GBSearchConfig *bconfig,
- guint index)
+ guint index_)
{
guint old_size = barray->n_nodes * bconfig->sizeof_node;
guint new_size = old_size + bconfig->sizeof_node;
guint8 *node;
- g_return_val_if_fail (index <= barray->n_nodes, NULL);
+ g_return_val_if_fail (index_ <= barray->n_nodes, NULL);
if (G_UNLIKELY (bconfig->flags & G_BSEARCH_ARRAY_ALIGN_POWER2))
{
new_size = G_BSEARCH_UPPER_POWER2 (sizeof (GBSearchArray) + new_size);
old_size = G_BSEARCH_UPPER_POWER2 (sizeof (GBSearchArray) + old_size);
if (old_size != new_size)
- barray = g_realloc (barray, new_size);
+ barray = (GBSearchArray *) g_realloc (barray, new_size);
}
else
- barray = g_realloc (barray, sizeof (GBSearchArray) + new_size);
- node = G_BSEARCH_ARRAY_NODES (barray) + index * bconfig->sizeof_node;
- g_memmove (node + bconfig->sizeof_node, node, (barray->n_nodes - index) * bconfig->sizeof_node);
+ barray = (GBSearchArray *) g_realloc (barray, sizeof (GBSearchArray) + new_size);
+ node = G_BSEARCH_ARRAY_NODES (barray) + index_ * bconfig->sizeof_node;
+ memmove (node + bconfig->sizeof_node, node, (barray->n_nodes - index_) * bconfig->sizeof_node);
barray->n_nodes += 1;
return barray;
}
}
else
{
- node = g_bsearch_array_lookup_insertion (barray, bconfig, key_node);
+ node = (guint8 *) g_bsearch_array_lookup_insertion (barray, bconfig, key_node);
if (G_LIKELY (node))
{
- guint index = g_bsearch_array_get_index (barray, bconfig, node);
+ guint index_ = g_bsearch_array_get_index (barray, bconfig, node);
/* grow and insert */
- barray = g_bsearch_array_grow (barray, bconfig, index);
- node = G_BSEARCH_ARRAY_NODES (barray) + index * bconfig->sizeof_node;
+ barray = g_bsearch_array_grow (barray, bconfig, index_);
+ node = G_BSEARCH_ARRAY_NODES (barray) + index_ * bconfig->sizeof_node;
}
else /* no insertion needed, node already there */
return barray;
const GBSearchConfig *bconfig,
gconstpointer key_node)
{
- guint8 *node = g_bsearch_array_lookup (barray, bconfig, key_node);
+ guint8 *node = (guint8 *) g_bsearch_array_lookup (barray, bconfig, key_node);
if (G_LIKELY (node)) /* expected path */
memcpy (node, key_node, bconfig->sizeof_node);
else /* revert to insertion */
static inline GBSearchArray*
g_bsearch_array_remove (GBSearchArray *barray,
const GBSearchConfig *bconfig,
- guint index)
+ guint index_)
{
guint8 *node;
- g_return_val_if_fail (index < barray->n_nodes, NULL);
+ g_return_val_if_fail (index_ < barray->n_nodes, NULL);
barray->n_nodes -= 1;
- node = G_BSEARCH_ARRAY_NODES (barray) + index * bconfig->sizeof_node;
- g_memmove (node, node + bconfig->sizeof_node, (barray->n_nodes - index) * bconfig->sizeof_node);
+ node = G_BSEARCH_ARRAY_NODES (barray) + index_ * bconfig->sizeof_node;
+ memmove (node, node + bconfig->sizeof_node, (barray->n_nodes - index_) * bconfig->sizeof_node);
if (G_UNLIKELY (bconfig->flags & G_BSEARCH_ARRAY_AUTO_SHRINK))
{
guint new_size = barray->n_nodes * bconfig->sizeof_node;
new_size = G_BSEARCH_UPPER_POWER2 (sizeof (GBSearchArray) + new_size);
old_size = G_BSEARCH_UPPER_POWER2 (sizeof (GBSearchArray) + old_size);
if (old_size != new_size)
- barray = g_realloc (barray, new_size);
+ barray = (GBSearchArray *) g_realloc (barray, new_size);
}
else
- barray = g_realloc (barray, sizeof (GBSearchArray) + new_size);
+ barray = (GBSearchArray *) g_realloc (barray, sizeof (GBSearchArray) + new_size);
}
return barray;
}