aboutsummaryrefslogtreecommitdiffstats
path: root/epan/range.c
diff options
context:
space:
mode:
Diffstat (limited to 'epan/range.c')
-rw-r--r--epan/range.c43
1 files changed, 21 insertions, 22 deletions
diff --git a/epan/range.c b/epan/range.c
index 0bce5f9dea..5bcfc60c95 100644
--- a/epan/range.c
+++ b/epan/range.c
@@ -42,11 +42,11 @@
#define RANGE_HDR_SIZE (sizeof (range_t) - sizeof (range_admin_t))
/* Allocate an empty range. */
-range_t *range_empty(void)
+range_t *range_empty(wmem_allocator_t *scope)
{
range_t *range;
- range = (range_t *)g_malloc(RANGE_HDR_SIZE);
+ range = (range_t *)wmem_alloc(scope, RANGE_HDR_SIZE);
range->nranges = 0;
return range;
}
@@ -78,9 +78,9 @@ range_t *range_empty(void)
*/
convert_ret_t
-range_convert_str(range_t **rangep, const gchar *es, guint32 max_value)
+range_convert_str(wmem_allocator_t *scope, range_t **rangep, const gchar *es, guint32 max_value)
{
- return range_convert_str_work(rangep, es, max_value, TRUE);
+ return range_convert_str_work(scope, rangep, es, max_value, TRUE);
}
/* This version of range_convert_str() allows the caller to specify whether
@@ -89,7 +89,7 @@ range_convert_str(range_t **rangep, const gchar *es, guint32 max_value)
* XXX - both the function and the variable could probably use better names.
*/
convert_ret_t
-range_convert_str_work(range_t **rangep, const gchar *es, guint32 max_value,
+range_convert_str_work(wmem_allocator_t *scope, range_t **rangep, const gchar *es, guint32 max_value,
gboolean err_on_max)
{
@@ -106,7 +106,7 @@ range_convert_str_work(range_t **rangep, const gchar *es, guint32 max_value,
return CVT_SYNTAX_ERROR;
/* Allocate a range; this has room for one subrange. */
- range = (range_t *)g_malloc(RANGE_HDR_SIZE + sizeof (range_admin_t));
+ range = (range_t *)wmem_alloc(scope, RANGE_HDR_SIZE + sizeof (range_admin_t));
range->nranges = 0;
nranges = 1;
@@ -137,7 +137,7 @@ range_convert_str_work(range_t **rangep, const gchar *es, guint32 max_value,
nranges = 4;
else
nranges += 4;
- range = (range_t *)g_realloc(range, RANGE_HDR_SIZE +
+ range = (range_t *)wmem_realloc(scope, range, RANGE_HDR_SIZE +
nranges*sizeof (range_admin_t));
}
@@ -150,7 +150,7 @@ range_convert_str_work(range_t **rangep, const gchar *es, guint32 max_value,
val = strtoul(p, &endp, 0);
if (p == endp) {
/* That wasn't a valid number. */
- g_free(range);
+ wmem_free(scope, range);
return CVT_SYNTAX_ERROR;
}
if (errno == ERANGE || val > max_value) {
@@ -158,7 +158,7 @@ range_convert_str_work(range_t **rangep, const gchar *es, guint32 max_value,
* (e.g., except when reading from the preferences file).
*/
if (err_on_max) {
- g_free(range);
+ wmem_free(scope, range);
return CVT_NUMBER_TOO_BIG;
} else {
/* Silently use the range's maximum value */
@@ -173,7 +173,7 @@ range_convert_str_work(range_t **rangep, const gchar *es, guint32 max_value,
p++;
} else {
/* Neither empty nor a number. */
- g_free(range);
+ wmem_free(scope, range);
return CVT_SYNTAX_ERROR;
}
@@ -196,7 +196,7 @@ range_convert_str_work(range_t **rangep, const gchar *es, guint32 max_value,
val = strtoul(p, &endp, 0);
if (p == endp) {
/* That wasn't a valid number. */
- g_free(range);
+ wmem_free(scope, range);
return CVT_SYNTAX_ERROR;
}
if (errno == ERANGE || val > max_value) {
@@ -204,7 +204,7 @@ range_convert_str_work(range_t **rangep, const gchar *es, guint32 max_value,
* (e.g., except when reading from the preferences file).
*/
if (err_on_max) {
- g_free(range);
+ wmem_free(scope, range);
return CVT_NUMBER_TOO_BIG;
} else {
/* Silently use the range's maximum value */
@@ -219,7 +219,7 @@ range_convert_str_work(range_t **rangep, const gchar *es, guint32 max_value,
p++;
} else {
/* Neither empty nor a number. */
- g_free(range);
+ wmem_free(scope, range);
return CVT_SYNTAX_ERROR;
}
} else if (c == ',' || c == '\0') {
@@ -229,7 +229,7 @@ range_convert_str_work(range_t **rangep, const gchar *es, guint32 max_value,
range->ranges[range->nranges].high = range->ranges[range->nranges].low;
} else {
/* Invalid character. */
- g_free(range);
+ wmem_free(scope, range);
return CVT_SYNTAX_ERROR;
}
range->nranges++;
@@ -284,7 +284,7 @@ value_is_in_range(range_t *range, guint32 val)
* a range. This may extend an existing range or create a new one
*/
gboolean
-range_add_value(range_t **range, guint32 val)
+range_add_value(wmem_allocator_t *scope, range_t **range, guint32 val)
{
guint i;
@@ -308,7 +308,7 @@ range_add_value(range_t **range, guint32 val)
}
}
- (*range) = (range_t *)g_realloc((*range), RANGE_HDR_SIZE +
+ (*range) = (range_t *)wmem_realloc(scope, (*range), RANGE_HDR_SIZE +
((*range)->nranges+1)*sizeof (range_admin_t));
(*range)->nranges++;
(*range)->ranges[i].low = (*range)->ranges[i].high = val;
@@ -321,7 +321,7 @@ range_add_value(range_t **range, guint32 val)
* a range. This may delete an existing range
*/
gboolean
-range_remove_value(range_t **range, guint32 val)
+range_remove_value(wmem_allocator_t *scope, range_t **range, guint32 val)
{
guint i, j, new_j;
range_t *new_range;
@@ -336,7 +336,7 @@ range_remove_value(range_t **range, guint32 val)
if ((val == (*range)->ranges[i].low) && (val == (*range)->ranges[i].high))
{
/* Remove the range item entirely */
- new_range = (range_t*)g_malloc(RANGE_HDR_SIZE + ((*range)->nranges-1)*sizeof (range_admin_t));
+ new_range = (range_t*)wmem_alloc(scope, RANGE_HDR_SIZE + ((*range)->nranges-1)*sizeof (range_admin_t));
new_range->nranges = (*range)->nranges-1;
for (j=0, new_j = 0; j < (*range)->nranges; j++) {
@@ -349,7 +349,7 @@ range_remove_value(range_t **range, guint32 val)
new_j++;
}
- g_free(*range);
+ wmem_free(scope, *range);
*range = new_range;
return TRUE;
}
@@ -439,7 +439,7 @@ range_convert_range(wmem_allocator_t *scope, const range_t *range)
/* Create a copy of a range. */
range_t *
-range_copy(range_t *src)
+range_copy(wmem_allocator_t *scope, range_t *src)
{
range_t *dst;
size_t range_size;
@@ -448,8 +448,7 @@ range_copy(range_t *src)
return NULL;
range_size = RANGE_HDR_SIZE + src->nranges*sizeof (range_admin_t);
- dst = (range_t *)g_malloc(range_size);
- memcpy(dst, src, range_size);
+ dst = (range_t *)wmem_memdup(scope, src, range_size);
return dst;
}