{
struct case_data *cd;
- assert (c != NULL);
- assert (c->this == c);
- assert (c->case_data != NULL);
assert (c->case_data->ref_cnt > 1);
cd = c->case_data;
case_nullify (struct ccase *c)
{
c->case_data = NULL;
- c->this = c;
}
#endif /* DEBUGGING */
void
case_clone (struct ccase *clone, const struct ccase *orig)
{
- assert (orig != NULL);
- assert (orig->this == orig);
- assert (orig->case_data != NULL);
assert (orig->case_data->ref_cnt > 0);
- assert (clone != NULL);
if (clone != orig)
- {
- *clone = *orig;
- clone->this = clone;
- }
+ *clone = *orig;
orig->case_data->ref_cnt++;
}
#endif /* DEBUGGING */
void
case_move (struct ccase *dst, struct ccase *src)
{
- assert (src != NULL);
- assert (src->this == src);
- assert (src->case_data != NULL);
assert (src->case_data->ref_cnt > 0);
- assert (dst != NULL);
if (dst != src)
{
*dst = *src;
- dst->this = dst;
case_nullify (src);
}
}
struct case_data *cd;
assert (c != NULL);
- assert (c->this == c);
cd = c->case_data;
if (cd != NULL && --cd->ref_cnt == 0)
}
/* Attempts to create C as a new case that holds VALUE_CNT
- values. Returns nonzero if successful, zero if memory
+ values. Returns true if successful, false if memory
allocation failed. */
-int
+bool
case_try_create (struct ccase *c, size_t value_cnt)
{
-#ifdef DEBUGGING
- c->this = c;
-#endif
c->case_data = malloc (case_size (value_cnt));
if (c->case_data != NULL)
{
c->case_data->value_cnt = value_cnt;
c->case_data->ref_cnt = 1;
- return 1;
+ return true;
}
- else
- return 0;
+
+ return false;
}
/* Tries to initialize CLONE as a copy of ORIG.
- Returns nonzero if successful, zero if memory allocation
+ Returns true if successful, false if memory allocation
failed. */
-int
+bool
case_try_clone (struct ccase *clone, const struct ccase *orig)
{
case_clone (clone, orig);
- return 1;
+ return true;
}
#ifdef DEBUGGING
const struct ccase *src, size_t src_idx,
size_t value_cnt)
{
- assert (dst != NULL);
- assert (dst->this == dst);
- assert (dst->case_data != NULL);
assert (dst->case_data->ref_cnt > 0);
assert (dst_idx + value_cnt <= dst->case_data->value_cnt);
- assert (src != NULL);
- assert (src->this == src);
- assert (src->case_data != NULL);
assert (src->case_data->ref_cnt > 0);
- assert (src_idx + value_cnt <= dst->case_data->value_cnt);
+ assert (src_idx + value_cnt <= src->case_data->value_cnt);
if (dst->case_data != src->case_data || dst_idx != src_idx)
{
case_to_values (const struct ccase *c, union value *output,
size_t output_size UNUSED)
{
- assert (c != NULL);
- assert (c->this == c);
- assert (c->case_data != NULL);
assert (c->case_data->ref_cnt > 0);
assert (output_size == c->case_data->value_cnt);
assert (output != NULL || output_size == 0);
size_t input_size UNUSED)
{
assert (c != NULL);
- assert (c->this == c);
assert (c->case_data != NULL);
assert (c->case_data->ref_cnt > 0);
assert (input_size == c->case_data->value_cnt);
case_data (const struct ccase *c, size_t idx)
{
assert (c != NULL);
- assert (c->this == c);
assert (c->case_data != NULL);
assert (c->case_data->ref_cnt > 0);
assert (idx < c->case_data->value_cnt);
case_num (const struct ccase *c, size_t idx)
{
assert (c != NULL);
- assert (c->this == c);
assert (c->case_data != NULL);
assert (c->case_data->ref_cnt > 0);
assert (idx < c->case_data->value_cnt);
case_str (const struct ccase *c, size_t idx)
{
assert (c != NULL);
- assert (c->this == c);
assert (c->case_data != NULL);
assert (c->case_data->ref_cnt > 0);
assert (idx < c->case_data->value_cnt);
case_data_rw (struct ccase *c, size_t idx)
{
assert (c != NULL);
- assert (c->this == c);
assert (c->case_data != NULL);
assert (c->case_data->ref_cnt > 0);
assert (idx < c->case_data->value_cnt);
case_data_all (const struct ccase *c)
{
assert (c != NULL);
- assert (c->this == c);
assert (c->case_data != NULL);
assert (c->case_data->ref_cnt > 0);
case_data_all_rw (struct ccase *c)
{
assert (c != NULL);
- assert (c->this == c);
assert (c->case_data != NULL);
assert (c->case_data->ref_cnt > 0);