RE: Copying an object



From: gtk-app-devel-list-admin gnome org 
Hi,
I have C structs containing data and pointers to other 
objects and data. It is like OOP in C. I need to make a copy 
of an object, but found it is really tedious in C. The data 
in the struct can be copied, but you need to recursively 
follow pointers, do a malloc, then copy the data that was 
pointed at, into the new malloced area.

Is there an easy way to do it? Can g_object do it? C++?

Gobject are generally refcounted rather than copied. But there's probably
one or two that have clone() or copy() functions too.

There's also "boxed-types" that are just regular structs plus copy() and
free() functions. Look for g_boxed_type_register_static() in the source code
- in gdk_rectangle_get_type(), for instance. You still have to write the
code to do a deep copy, but you only have to write it once.

Murray Cumming
www.murrayc.com
murrayc usa net



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