Add stddef.h include for offsetof
[babeltrace.git] / formats / ctf / types / string.c
index 9cfd0a094e723800c6301e16473227009642f01b..53a9692f85b46b3c2c8baaef851fd27ac08eac6f 100644 (file)
 #include <limits.h>            /* C99 limits */
 #include <string.h>
 
-size_t string_copy(char *dest, const char *src)
+void ctf_string_copy(struct stream_pos *dest, struct stream_pos *src,
+                    const struct type_class_string *string_class)
 {
-       size_t len = strlen(src) + 1;
+       size_t len;
+       unsigned char *destaddr, *srcaddr;
 
-       if (!dest)
+       align_pos(src, string_class->p.alignment);
+       srcaddr = get_pos_addr(src);
+       len = strlen(srcaddr) + 1;
+       if (dest->dummy)
                goto end;
-       strcpy(dest, src);
+       align_pos(dest, string_class->p.alignment);
+       destaddr = get_pos_addr(dest);
+       strcpy(destaddr, srcaddr);
 end:
-       return len * CHAR_BIT;
+       move_pos(dest, len);
+       move_pos(src, len);
+}
+
+void ctf_string_read(unsigned char **dest, struct stream_pos *src,
+                    const struct type_class_string *string_class)
+{
+       size_t len;
+       unsigned char *srcaddr;
+
+       align_pos(src, string_class->p.alignment);
+       srcaddr = get_pos_addr(src);
+       len = strlen(srcaddr) + 1;
+       if (dest->dummy)
+               goto end;
+       *dest = g_realloc(*dest, len);
+       strcpy(dest, srcaddr);
+end:
+       move_pos(src, len);
+}
+
+void ctf_string_write(struct stream_pos *dest, const unsigned char *src,
+                     const struct type_class_string *string_class)
+{
+       size_t len;
+       unsigned char *destaddr;
+
+       align_pos(dest, string_class->p.alignment);
+       len = strlen(src) + 1;
+       if (dest->dummy)
+               goto end;
+       destaddr = get_pos_addr(dest);
+       strcpy(destaddr, src);
+end:
+       move_pos(dest, len);
+}
+
+void ctf_string_free_temp(unsigned char *string)
+{
+       g_free(string);
 }
This page took 0.023357 seconds and 4 git commands to generate.