aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas White <taw@physics.org>2020-01-25 15:30:59 +0100
committerThomas White <taw@physics.org>2020-01-25 15:30:59 +0100
commit7f6f418e5d5d31e2617b613c3cfe3a2da004b56c (patch)
treefb17a543532c90eeeb09f9640d993b333330e82e
parente6d94b1b6c9a8b74d7faa7e80d7a44f604c4e814 (diff)
Fix semantics of slide_add_item
-rw-r--r--libstorycode/gtk/gtkslideview.c4
-rw-r--r--libstorycode/slide.c5
-rw-r--r--libstorycode/slide.h2
-rw-r--r--src/slide_window.c4
4 files changed, 8 insertions, 7 deletions
diff --git a/libstorycode/gtk/gtkslideview.c b/libstorycode/gtk/gtkslideview.c
index f4f4572..96e8053 100644
--- a/libstorycode/gtk/gtkslideview.c
+++ b/libstorycode/gtk/gtkslideview.c
@@ -882,7 +882,7 @@ static SlideItem *create_image(GtkSlideView *e, const char *filename,
geom.w.len = w; geom.w.unit = LENGTH_UNIT;
geom.h.len = h; geom.h.unit = LENGTH_UNIT;
item = slide_item_image(fn, geom);
- slide_add_item(e->slide, item);
+ item = slide_add_item(e->slide, item);
return item;
}
@@ -917,7 +917,7 @@ static SlideItem *create_frame(GtkSlideView *e, double cx, double cy,
geom.w.len = w; geom.w.unit = LENGTH_UNIT;
geom.h.len = h; geom.h.unit = LENGTH_UNIT;
item = slide_item_text(&runs, &nruns, 1, geom, ALIGN_INHERIT);
- slide_add_item(e->slide, item);
+ item = slide_add_item(e->slide, item);
return item;
}
diff --git a/libstorycode/slide.c b/libstorycode/slide.c
index f5728c7..a3423c4 100644
--- a/libstorycode/slide.c
+++ b/libstorycode/slide.c
@@ -82,17 +82,18 @@ static SlideItem *slide_item_new()
}
-void slide_add_item(Slide *s, SlideItem *item)
+SlideItem *slide_add_item(Slide *s, SlideItem *item)
{
SlideItem *new_items;
new_items = realloc(s->items, (s->n_items+1)*sizeof(SlideItem));
- if ( new_items == NULL ) return;
+ if ( new_items == NULL ) return NULL;
s->items = new_items;
/* Copy contents and free top-level */
s->items[s->n_items++] = *item;
free(item);
+ return &s->items[s->n_items-1];
}
diff --git a/libstorycode/slide.h b/libstorycode/slide.h
index f880c2e..2223a9f 100644
--- a/libstorycode/slide.h
+++ b/libstorycode/slide.h
@@ -38,7 +38,7 @@ typedef struct _slideitem SlideItem;
extern Slide *slide_new(void);
extern void slide_free(Slide *s);
-extern void slide_add_item(Slide *s, SlideItem *item);
+extern SlideItem *slide_add_item(Slide *s, SlideItem *item);
extern void slide_delete_item(Slide *s, SlideItem *item);
extern int slide_set_logical_size(Slide *s, double w, double h);
diff --git a/src/slide_window.c b/src/slide_window.c
index 75d40d2..dc5ce9a 100644
--- a/src/slide_window.c
+++ b/src/slide_window.c
@@ -69,7 +69,7 @@ static void insert_slidetitle_sig(GSimpleAction *action, GVariant *parameter,
runs[0].text = strdup("Slide title");
item = slide_item_slidetitle(&runs, &nruns, 1);
- slide_add_item(sw->slide, item);
+ item = slide_add_item(sw->slide, item);
gtk_slide_view_set_slide(sw->sv, sw->slide);
}
@@ -120,7 +120,7 @@ static gint insert_image_response_sig(GtkWidget *d, gint response, SlideWindow *
}
item = slide_item_image(fn, geom);
- slide_add_item(sw->slide, item);
+ item = slide_add_item(sw->slide, item);
}
gtk_widget_destroy(d);