+2020-07-22 Nick Alcock <nick.alcock@oracle.com>
+
+ * ctf-api.c (ctf_type_name_raw): New.
+
2020-07-22 Nick Alcock <nick.alcock@oracle.com>
* ctf-api.h (ECTF_*): Improve comments.
extern char *ctf_type_aname_raw (ctf_file_t *, ctf_id_t);
extern ssize_t ctf_type_lname (ctf_file_t *, ctf_id_t, char *, size_t);
extern char *ctf_type_name (ctf_file_t *, ctf_id_t, char *, size_t);
+extern const char *ctf_type_name_raw (ctf_file_t *, ctf_id_t);
extern ssize_t ctf_type_size (ctf_file_t *, ctf_id_t);
extern ssize_t ctf_type_align (ctf_file_t *, ctf_id_t);
extern int ctf_type_kind (ctf_file_t *, ctf_id_t);
+2020-07-22 Nick Alcock <nick.alcock@oracle.com>
+
+ * ctf-types.c (ctf_type_name_raw): New.
+ (ctf_type_aname_raw): Reimplement accordingly.
+
2020-07-22 Nick Alcock <nick.alcock@oracle.com>
* ctf-subr.c (ctf_dprintf): _libctf_debug is unlikely to be set.
return (rv >= 0 && (size_t) rv < len ? buf : NULL);
}
-/* Lookup the given type ID and return its raw, unadorned, undecorated name as a
- new dynamcally-allocated string. */
+/* Lookup the given type ID and return its raw, unadorned, undecorated name.
+ The name will live as long as its ctf_file_t does. */
-char *
-ctf_type_aname_raw (ctf_file_t *fp, ctf_id_t type)
+const char *
+ctf_type_name_raw (ctf_file_t *fp, ctf_id_t type)
{
const ctf_type_t *tp;
if ((tp = ctf_lookup_by_id (&fp, type)) == NULL)
return NULL; /* errno is set for us. */
- if (ctf_strraw (fp, tp->ctt_name) != NULL)
- return strdup (ctf_strraw (fp, tp->ctt_name));
+ return ctf_strraw (fp, tp->ctt_name);
+}
+
+/* Lookup the given type ID and return its raw, unadorned, undecorated name as a
+ new dynamically-allocated string. */
+
+char *
+ctf_type_aname_raw (ctf_file_t *fp, ctf_id_t type)
+{
+ const char *name = ctf_type_name_raw (fp, type);
+
+ if (name != NULL)
+ return strdup (name);
return NULL;
}