atom_new_data_len (char *data, size_t len)
{
Atom *atom = g_slice_new (Atom);
- atom->data = data;
+ atom->data = g_malloc (len);
+ memcpy (atom->data, data, len);
atom->len = len;
return atom;
}
+void
+atom_delete (Atom *atom)
+{
+ if (atom->data)
+ g_free (atom->data);
+ g_slice_free (Atom, atom);
+}
+
+char *
+atom_string (Atom *atom)
+{
+ return atom->data;
+}
+
+size_t
+atom_len (Atom *atom)
+{
+ return atom->len;
+}
typedef struct _atom_entry Atom;
Atom * atom_new_data_len (char *, size_t);
+void atom_delete (Atom *);
+char * atom_string (Atom *);
+size_t atom_len (Atom *);
#endif