[gnumeric] Cleanup: use structure assignment, not memcpy.



commit ad9f248cbc62652945bec929d25a8c900447d7f2
Author: Morten Welinder <terra gnome org>
Date:   Mon May 18 11:11:53 2009 -0400

    Cleanup: use structure assignment, not memcpy.
---
 ChangeLog          |    7 +++++++
 src/clipboard.c    |    7 +++----
 src/commands.c     |   21 ++++++++++++---------
 src/gnm-pane.c     |    2 +-
 src/sheet-object.c |   16 +++-------------
 src/sheet-object.h |    2 --
 src/sheet-style.c  |    7 +++----
 7 files changed, 29 insertions(+), 33 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 2044d5e..8628e1f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
 2009-05-18  Morten Welinder  <terra gnome org>
 
+	* src/sheet-style.c (sheet_style_init_size,
+	sheet_style_set_auto_pattern_color): Use structure assignment, not
+	memcpy.
+
+	* src/sheet-object.c (sheet_object_anchor_assign): Eliminate in
+	favour of plain structure assignment.  All callers changed.
+
 	* src/wbc-gtk.c (wbcg_scrollbar_visibility,
 	wbcg_notebook_tabs_visibility): New functions.
 	(wbcg_view_changed): Hook up wbcg_scrollbar_visibility and
diff --git a/src/clipboard.c b/src/clipboard.c
index a47e1b5..c4ce813 100644
--- a/src/clipboard.c
+++ b/src/clipboard.c
@@ -271,7 +271,7 @@ paste_object (GnmPasteTarget const *pt, SheetObject const *src, int left, int to
 	SheetObject *dst;
 	SheetObjectAnchor tmp;
 
-	sheet_object_anchor_assign (&tmp, sheet_object_get_anchor (src));
+	tmp = *sheet_object_get_anchor (src);
 	if (G_OBJECT_TYPE (src) == CELL_COMMENT_TYPE) {
 		if ((pt->paste_flags & PASTE_COMMENTS) &&
 		    (pt->paste_flags & PASTE_IGNORE_COMMENTS_AT_ORIGIN &&
@@ -565,8 +565,7 @@ cb_dup_objects (SheetObject const *src, GnmCellRegion *cr)
 {
 	SheetObject *dst = sheet_object_dup (src);
 	if (dst != NULL) {
-		SheetObjectAnchor tmp;
-		sheet_object_anchor_assign (&tmp, sheet_object_get_anchor (src));
+		SheetObjectAnchor tmp =	*sheet_object_get_anchor (src);
 		range_translate (&tmp.cell_bound, sheet_object_get_sheet (src),
 				 - cr->base.col, - cr->base.row);
 		sheet_object_set_anchor (dst, &tmp);
@@ -688,7 +687,7 @@ clipboard_copy_obj (Sheet *sheet, GSList *objects)
 			g_object_set_data (G_OBJECT (so),  "pt-height-at-copy",
 				GUINT_TO_POINTER (h));
 
-			sheet_object_anchor_assign (&tmp_anchor, anchor);
+			tmp_anchor = *anchor;
 			r = &tmp_anchor.cell_bound;
 			range_translate (r, sheet,
 				-MIN (r->start.col, r->end.col),
diff --git a/src/commands.c b/src/commands.c
index 7fe8913..0281172 100644
--- a/src/commands.c
+++ b/src/commands.c
@@ -4532,21 +4532,24 @@ cmd_objects_move_redo (GnmCommand *cmd,
 		       G_GNUC_UNUSED WorkbookControl *wbc)
 {
 	CmdObjectsMove *me = CMD_OBJECTS_MOVE (cmd);
-	SheetObjectAnchor tmp;
-	GSList *obj = me->objects, *anch = me->anchors;
+	GSList *objs = me->objects, *anchs = me->anchors;
+
+	for (; objs && anchs; objs = objs->next, anchs = anchs->next) {
+		SheetObject *obj = objs->data;
+		SheetObjectAnchor *anch = anchs->data;
+		SheetObjectAnchor tmp;
 
-	for (; obj != NULL && anch != NULL ; obj = obj->next, anch = anch->next) {
 		/* If these were newly created objects remove them on undo and
 		 * re-insert on subsequent redos */
 		if (me->objects_created && !me->first_time) {
-			if (NULL != sheet_object_get_sheet (obj->data))
-				sheet_object_clear_sheet (obj->data);
+			if (NULL != sheet_object_get_sheet (obj))
+				sheet_object_clear_sheet (obj);
 			else
-				sheet_object_set_sheet (obj->data, cmd->sheet);
+				sheet_object_set_sheet (obj, cmd->sheet);
 		}
-		sheet_object_anchor_assign (&tmp, sheet_object_get_anchor (obj->data));
-		sheet_object_set_anchor	(obj->data, anch->data);
-		sheet_object_anchor_assign (anch->data, &tmp);
+		tmp = *sheet_object_get_anchor (obj);
+		sheet_object_set_anchor	(obj, anch);
+		*anch = tmp;
 	}
 	me->first_time = FALSE;
 
diff --git a/src/gnm-pane.c b/src/gnm-pane.c
index 285a8dd..5590e31 100644
--- a/src/gnm-pane.c
+++ b/src/gnm-pane.c
@@ -1990,7 +1990,7 @@ gnm_pane_display_obj_size_tip (GnmPane *pane, SheetObject const *so)
 
 	g_return_if_fail (pane->size_tip != NULL);
 
-	sheet_object_anchor_assign (&anchor, sheet_object_get_anchor (so));
+	anchor = *sheet_object_get_anchor (so);
 	scg_object_coords_to_anchor (scg, coords, &anchor);
 	sheet_object_anchor_to_pts (&anchor, scg_sheet (scg), pts);
 	msg = g_strdup_printf (_("%.1f x %.1f pts\n%d x %d pixels"),
diff --git a/src/sheet-object.c b/src/sheet-object.c
index b56784e..883a0e6 100644
--- a/src/sheet-object.c
+++ b/src/sheet-object.c
@@ -607,7 +607,7 @@ sheet_object_set_anchor (SheetObject *so, SheetObjectAnchor const *anchor)
 {
 	g_return_if_fail (IS_SHEET_OBJECT (so));
 
-	sheet_object_anchor_assign (&so->anchor, anchor);
+	so->anchor = *anchor;
 	if (so->sheet != NULL) {
 		sheet_objects_max_extent (so->sheet);
 		sheet_object_update_bounds (so, NULL);
@@ -617,20 +617,10 @@ sheet_object_set_anchor (SheetObject *so, SheetObjectAnchor const *anchor)
 SheetObjectAnchor *
 sheet_object_anchor_dup	(SheetObjectAnchor const *src)
 {
-	SheetObjectAnchor *res = g_new0 (SheetObjectAnchor, 1);
-	sheet_object_anchor_assign (res, src);
+	SheetObjectAnchor *res = g_memdup (src, sizeof (SheetObjectAnchor));
 	return res;
 }
 
-void
-sheet_object_anchor_assign (SheetObjectAnchor *dst, SheetObjectAnchor const *src)
-{
-	g_return_if_fail (src != NULL);
-	g_return_if_fail (dst != NULL);
-
-	memcpy (dst, src, sizeof (SheetObjectAnchor));
-}
-
 static double
 cell_offset_calc_pt (Sheet const *sheet, int i, gboolean is_col,
 		     float offset)
@@ -876,7 +866,7 @@ sheet_object_dup (SheetObject const *so)
 
 	SO_CLASS (so)->copy (new_so, so);
 	new_so->flags = so->flags;
-	sheet_object_anchor_assign (&new_so->anchor, &so->anchor);
+	new_so->anchor = so->anchor;
 
 	return new_so;
 }
diff --git a/src/sheet-object.h b/src/sheet-object.h
index c1551f2..cafc64d 100644
--- a/src/sheet-object.h
+++ b/src/sheet-object.h
@@ -112,8 +112,6 @@ void sheet_object_anchor_init	(SheetObjectAnchor *anchor,
 				 GODrawingAnchorDir direction);
 SheetObjectAnchor *
      sheet_object_anchor_dup	(SheetObjectAnchor const *src);
-void sheet_object_anchor_assign	(SheetObjectAnchor *dst,
-				 SheetObjectAnchor const *src);
 
 /* Image rendering */
 GtkTargetList *sheet_object_get_target_list (SheetObject const *so);
diff --git a/src/sheet-style.c b/src/sheet-style.c
index 12b0cf1..fdaebd3 100644
--- a/src/sheet-style.c
+++ b/src/sheet-style.c
@@ -516,8 +516,7 @@ sheet_style_init_size (Sheet *sheet, int cols, int rows)
 		g_hash_table_new (gnm_style_hash, (GCompareFunc) gnm_style_equal);
 #warning "FIXME: Allocating a GnmColor here is dubious."
 	sheet->style_data->auto_pattern_color = g_new (GnmColor, 1);
-	memcpy (sheet->style_data->auto_pattern_color,
-		style_color_auto_pattern (), sizeof (GnmColor));
+	*sheet->style_data->auto_pattern_color =  *style_color_auto_pattern ();
 	sheet->style_data->auto_pattern_color->ref_count = 1;
 
 	default_style =  gnm_style_new_default ();
@@ -662,7 +661,7 @@ sheet_style_shutdown (Sheet *sheet)
  * Absorbs a reference to @pattern_color;
  **/
 void
-sheet_style_set_auto_pattern_color (Sheet  *sheet, GnmColor *pattern_color)
+sheet_style_set_auto_pattern_color (Sheet *sheet, GnmColor *pattern_color)
 {
 	GnmColor *apc;
 	int ref_count;
@@ -672,7 +671,7 @@ sheet_style_set_auto_pattern_color (Sheet  *sheet, GnmColor *pattern_color)
 
 	apc = sheet->style_data->auto_pattern_color;
 	ref_count = apc->ref_count;
-	memcpy(apc, pattern_color, sizeof (GnmColor));
+	*apc = *pattern_color;
 	apc->is_auto = TRUE;
 	apc->ref_count = ref_count;
 	style_color_unref (pattern_color);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]