Remove dynarray_count and dynarray_data

master
rexim 2019-12-09 05:08:22 +07:00
parent dbec47f8b9
commit 4953896b0d
6 changed files with 48 additions and 62 deletions

View File

@ -15,18 +15,6 @@ void *dynarray_pointer_at(Dynarray *dynarray, size_t index)
return dynarray->data + index * dynarray->element_size;
}
size_t dynarray_count(const Dynarray *dynarray)
{
trace_assert(dynarray);
return dynarray->count;
}
void *dynarray_data(Dynarray *dynarray)
{
trace_assert(dynarray);
return dynarray->data;
}
void dynarray_clear(Dynarray *dynarray)
{
trace_assert(dynarray);

View File

@ -23,8 +23,6 @@ Dynarray create_dynarray(size_t element_size)
return result;
}
size_t dynarray_count(const Dynarray *dynarray);
void *dynarray_data(Dynarray *dynarray);
void *dynarray_pointer_at(Dynarray *dynarray, size_t index);
void dynarray_replace_at(Dynarray *dynarray, size_t index, void *element);
void dynarray_copy_to(Dynarray *dynarray, void *dest, size_t index);

View File

@ -77,9 +77,9 @@ int boxes_render(Boxes *boxes, const Camera *camera)
trace_assert(boxes);
trace_assert(camera);
const size_t count = dynarray_count(&boxes->body_ids);
RigidBodyId *body_ids = dynarray_data(&boxes->body_ids);
Color *body_colors = dynarray_data(&boxes->body_colors);
const size_t count = boxes->body_ids.count;
RigidBodyId *body_ids = (RigidBodyId *)boxes->body_ids.data;
Color *body_colors = (Color *)boxes->body_colors.data;
for (size_t i = 0; i < count; ++i) {
if (rigid_bodies_render(
@ -99,8 +99,8 @@ int boxes_update(Boxes *boxes,
{
trace_assert(boxes);
const size_t count = dynarray_count(&boxes->body_ids);
RigidBodyId *body_ids = dynarray_data(&boxes->body_ids);
const size_t count = boxes->body_ids.count;
RigidBodyId *body_ids = (RigidBodyId *)boxes->body_ids.data;
for (size_t i = 0; i < count; ++i) {
if (rigid_bodies_update(boxes->rigid_bodies, body_ids[i], delta_time) < 0) {
@ -116,8 +116,8 @@ void boxes_float_in_lava(Boxes *boxes, Lava *lava)
trace_assert(boxes);
trace_assert(lava);
const size_t count = dynarray_count(&boxes->body_ids);
RigidBodyId *body_ids = dynarray_data(&boxes->body_ids);
const size_t count = boxes->body_ids.count;
RigidBodyId *body_ids = (RigidBodyId*)boxes->body_ids.data;
for (size_t i = 0; i < count; ++i) {
lava_float_rigid_body(lava, boxes->rigid_bodies, body_ids[i]);
@ -139,8 +139,8 @@ int boxes_delete_at(Boxes *boxes, Vec2f position)
{
trace_assert(boxes);
const size_t count = dynarray_count(&boxes->body_ids);
RigidBodyId *body_ids = dynarray_data(&boxes->body_ids);
const size_t count = boxes->body_ids.count;
RigidBodyId *body_ids = (RigidBodyId*)boxes->body_ids.data;
for (size_t i = 0; i < count; ++i) {
const Rect hitbox = rigid_bodies_hitbox(

View File

@ -409,9 +409,9 @@ int label_layer_element_at(LabelLayer *label_layer,
{
trace_assert(label_layer);
Vec2f *positions = dynarray_data(&label_layer->positions);
Vec2f *positions = (Vec2f*)label_layer->positions.data;
const int n = (int) dynarray_count(&label_layer->texts);
const int n = (int) label_layer->texts.count;
for (int i = n - 1; i >= 0; --i) {
if (rect_contains_point(
boundary_of_element(
@ -458,7 +458,7 @@ int label_layer_add_label(LabelLayer *label_layer,
label_layer->id_name_prefix,
label_layer->id_name_counter++);
size_t n = dynarray_count(&label_layer->ids);
size_t n = label_layer->ids.count;
dynarray_push(&label_layer->ids, id);
dynarray_push(&label_layer->positions, &position);
@ -481,8 +481,8 @@ void label_layer_swap_elements(LabelLayer *label_layer,
{
trace_assert(label_layer);
trace_assert(undo_history);
trace_assert(a < dynarray_count(&label_layer->positions));
trace_assert(b < dynarray_count(&label_layer->positions));
trace_assert(a < label_layer->positions.count);
trace_assert(b < label_layer->positions.count);
dynarray_swap(&label_layer->ids, a, b);
dynarray_swap(&label_layer->positions, a, b);
@ -520,10 +520,10 @@ int label_layer_idle_event(LabelLayer *label_layer,
return 0;
}
Color *colors = dynarray_data(&label_layer->colors);
Vec2f *positions = dynarray_data(&label_layer->positions);
char *ids = dynarray_data(&label_layer->ids);
char *texts = dynarray_data(&label_layer->texts);
Color *colors = (Color*)label_layer->colors.data;
Vec2f *positions = (Vec2f*)label_layer->positions.data;
char *ids = (char*)label_layer->ids.data;
char *texts = (char*)label_layer->texts.data;
switch (event->type) {
case SDL_MOUSEBUTTONDOWN: {
@ -573,7 +573,7 @@ int label_layer_idle_event(LabelLayer *label_layer,
case SDLK_UP: {
if ((event->key.keysym.mod & KMOD_SHIFT)
&& (label_layer->selection >= 0)
&& ((size_t)(label_layer->selection + 1) < dynarray_count(&label_layer->positions))) {
&& ((size_t)(label_layer->selection + 1) < label_layer->positions.count)) {
label_layer_swap_elements(
label_layer,
(size_t) label_layer->selection,
@ -586,7 +586,7 @@ int label_layer_idle_event(LabelLayer *label_layer,
case SDLK_DOWN: {
if ((event->key.keysym.mod & KMOD_SHIFT)
&& (label_layer->selection > 0)
&& ((size_t) label_layer->selection < dynarray_count(&label_layer->positions))) {
&& ((size_t) label_layer->selection < label_layer->positions.count)) {
label_layer_swap_elements(
label_layer,
(size_t) label_layer->selection,
@ -669,8 +669,8 @@ void snap_inter_position(LabelLayer *label_layer, float snap_threshold)
trace_assert(label_layer->selection >= 0);
trace_assert(label_layer->state == LABEL_LAYER_MOVE);
const size_t n = dynarray_count(&label_layer->positions);
Vec2f *positions = dynarray_data(&label_layer->positions);
const size_t n = label_layer->positions.count;
Vec2f *positions = (Vec2f*)label_layer->positions.data;
Rect a = boundary_of_element(
label_layer,
@ -705,7 +705,7 @@ int label_layer_move_event(LabelLayer *label_layer,
trace_assert(camera);
trace_assert(label_layer->selection >= 0);
Vec2f *positions = dynarray_data(&label_layer->positions);
Vec2f *positions = (Vec2f*)label_layer->positions.data;
switch (event->type) {
case SDL_MOUSEMOTION: {
@ -778,7 +778,7 @@ int label_layer_edit_text_event(LabelLayer *label_layer,
LABEL_UNDO_PUSH(undo_history, create_label_undo_context(label_layer, LABEL_UNDO_UPDATE));
char *text =
(char*)dynarray_data(&label_layer->texts) + label_layer->selection * LABEL_LAYER_TEXT_MAX_SIZE;
(char*)label_layer->texts.data + label_layer->selection * LABEL_LAYER_TEXT_MAX_SIZE;
memset(text, 0, LABEL_LAYER_TEXT_MAX_SIZE);
memcpy(text, edit_field_as_text(label_layer->edit_field), LABEL_LAYER_TEXT_MAX_SIZE - 1);
label_layer->state = LABEL_LAYER_IDLE;
@ -817,7 +817,7 @@ int label_layer_edit_id_event(LabelLayer *label_layer,
LABEL_UNDO_PUSH(undo_history, create_label_undo_context(label_layer, LABEL_UNDO_UPDATE));
char *id =
(char*)dynarray_data(&label_layer->ids) + label_layer->selection * LABEL_LAYER_ID_MAX_SIZE;
(char*)label_layer->ids.data + label_layer->selection * LABEL_LAYER_ID_MAX_SIZE;
memset(id, 0, LABEL_LAYER_ID_MAX_SIZE);
memcpy(id, edit_field_as_text(label_layer->edit_field), LABEL_LAYER_ID_MAX_SIZE - 1);
label_layer->state = LABEL_LAYER_IDLE;

View File

@ -73,8 +73,8 @@ PointUndoContext create_point_undo_swap_context(PointLayer *point_layer,
size_t index, size_t index2)
{
trace_assert(point_layer);
trace_assert(index < dynarray_count(&point_layer->positions));
trace_assert(index2 < dynarray_count(&point_layer->positions));
trace_assert(index < point_layer->positions.count);
trace_assert(index2 < point_layer->positions.count);
PointUndoContext undo_context;
undo_context.type = POINT_UNDO_SWAP;
@ -96,7 +96,7 @@ PointUndoContext create_point_undo_context(PointLayer *point_layer,
size_t index =
type == POINT_UNDO_ADD
? dynarray_count(&point_layer->positions) - 1
? point_layer->positions.count - 1
: (size_t) point_layer->selection;
undo_context.type = type;
@ -383,8 +383,8 @@ void point_layer_swap_elements(PointLayer *point_layer,
{
trace_assert(point_layer);
trace_assert(undo_history);
trace_assert(a < dynarray_count(&point_layer->positions));
trace_assert(b < dynarray_count(&point_layer->positions));
trace_assert(a < point_layer->positions.count);
trace_assert(b < point_layer->positions.count);
dynarray_swap(&point_layer->positions, a, b);
dynarray_swap(&point_layer->colors, a, b);
@ -456,8 +456,8 @@ int point_layer_idle_event(PointLayer *point_layer,
color_picker_rgba(&point_layer->color_picker),
undo_history);
} else {
Color *colors = dynarray_data(&point_layer->colors);
Vec2f *positions = dynarray_data(&point_layer->positions);
Color *colors = (Color*)point_layer->colors.data;
Vec2f *positions = (Vec2f*)point_layer->positions.data;
point_layer->state = POINT_LAYER_MOVE;
point_layer->color_picker =
@ -473,7 +473,7 @@ int point_layer_idle_event(PointLayer *point_layer,
case SDLK_UP: {
if ((event->key.keysym.mod & KMOD_SHIFT)
&& (point_layer->selection >= 0)
&& ((size_t)(point_layer->selection + 1) < dynarray_count(&point_layer->positions))) {
&& ((size_t)(point_layer->selection + 1) < point_layer->positions.count)) {
point_layer_swap_elements(
point_layer,
(size_t) point_layer->selection,
@ -486,7 +486,7 @@ int point_layer_idle_event(PointLayer *point_layer,
case SDLK_DOWN: {
if ((event->key.keysym.mod & KMOD_SHIFT)
&& (point_layer->selection > 0)
&& ((size_t) point_layer->selection < dynarray_count(&point_layer->positions))) {
&& ((size_t) point_layer->selection < point_layer->positions.count)) {
point_layer_swap_elements(
point_layer,
(size_t) point_layer->selection,
@ -497,7 +497,7 @@ int point_layer_idle_event(PointLayer *point_layer,
} break;
case SDLK_DELETE: {
if (0 <= point_layer->selection && point_layer->selection < (int) dynarray_count(&point_layer->positions)) {
if (0 <= point_layer->selection && point_layer->selection < (int) point_layer->positions.count) {
point_layer_delete_nth_element(
point_layer,
(size_t)point_layer->selection,
@ -508,7 +508,7 @@ int point_layer_idle_event(PointLayer *point_layer,
case SDLK_F2: {
if (point_layer->selection >= 0) {
char *ids = dynarray_data(&point_layer->ids);
char *ids = (char*)point_layer->ids.data;
point_layer->state = POINT_LAYER_EDIT_ID;
edit_field_replace(
point_layer->edit_field,
@ -598,7 +598,7 @@ int point_layer_move_event(PointLayer *point_layer,
trace_assert(camera);
trace_assert(point_layer->selection >= 0);
Vec2f *positions = dynarray_data(&point_layer->positions);
Vec2f *positions = (Vec2f*)point_layer->positions.data;
switch (event->type) {
case SDL_MOUSEBUTTONUP: {

View File

@ -264,7 +264,7 @@ static int rect_layer_rect_at(RectLayer *layer, Vec2f position)
trace_assert(layer);
int n = (int) layer->rects.count;
Rect *rects = dynarray_data(&layer->rects);
Rect *rects = (Rect*)layer->rects.data;
for (int i = n - 1; i >= 0; --i) {
if (rect_contains_point(rects[i], position)) {
@ -339,7 +339,7 @@ static int rect_layer_event_idle(RectLayer *layer,
return 0;
}
Rect *rects = dynarray_data(&layer->rects);
Rect *rects = (Rect*)layer->rects.data;
switch (event->type) {
case SDL_MOUSEBUTTONDOWN: {
@ -353,7 +353,7 @@ static int rect_layer_event_idle(RectLayer *layer,
rect_layer_rect_at(layer, position);
Color *colors = dynarray_data(&layer->colors);
Color *colors = (Color*)layer->colors.data;
if (layer->selection >= 0 &&
layer->selection == rect_at_position &&
@ -445,8 +445,8 @@ static int rect_layer_event_idle(RectLayer *layer,
case SDLK_F2: {
if (layer->selection >= 0) {
const char *ids = dynarray_data(&layer->ids);
Color *colors = dynarray_data(&layer->colors);
const char *ids = (char*)layer->ids.data;
Color *colors = (Color*)layer->colors.data;
edit_field_restyle(
layer->id_edit_field,
@ -542,8 +542,8 @@ void snap_rect_resize_if_enabled(RectLayer *layer, Rect *a, float snapping_thres
if (!layer->snapping_enabled) return;
Rect *rects = dynarray_data(&layer->rects);
size_t rects_size = dynarray_count(&layer->rects);
Rect *rects = (Rect*)layer->rects.data;
size_t rects_size = layer->rects.count;
for (size_t i = 0; i < rects_size; ++i) {
if (i == (size_t) layer->selection) continue;
@ -570,7 +570,7 @@ static int rect_layer_event_resize(RectLayer *layer,
trace_assert(camera);
trace_assert(layer->selection >= 0);
Rect *rects = dynarray_data(&layer->rects);
Rect *rects = (Rect*)layer->rects.data;
float scaled_snap_threshold = SNAPPING_THRESHOLD / camera->scale;
@ -716,8 +716,8 @@ void snap_rect_move_if_enabled(RectLayer *layer, Rect *a,
if (!layer->snapping_enabled) return;
Rect *rects = dynarray_data(&layer->rects);
size_t rects_size = dynarray_count(&layer->rects);
Rect *rects = (Rect*)layer->rects.data;
size_t rects_size = layer->rects.count;
for (size_t i = 0; i < rects_size; ++i) {
if (i == (size_t) layer->selection) continue;
@ -744,7 +744,7 @@ static int rect_layer_event_move(RectLayer *layer,
trace_assert(camera);
trace_assert(layer->selection >= 0);
Rect *rects = dynarray_data(&layer->rects);
Rect *rects = (Rect*)layer->rects.data;
switch (event->type) {
case SDL_MOUSEMOTION: {