aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/ChangeLog4
-rw-r--r--include/ctf-api.h1
-rw-r--r--libctf/ChangeLog5
-rw-r--r--libctf/ctf-types.c23
-rw-r--r--libctf/libctf.ver1
5 files changed, 28 insertions, 6 deletions
diff --git a/include/ChangeLog b/include/ChangeLog
index f5be0c0..2acc42a 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,5 +1,9 @@
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.
(ECTF_NERR): New.
diff --git a/include/ctf-api.h b/include/ctf-api.h
index 2e3e28b..363b5c2 100644
--- a/include/ctf-api.h
+++ b/include/ctf-api.h
@@ -324,6 +324,7 @@ extern char *ctf_type_aname (ctf_file_t *, ctf_id_t);
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);
diff --git a/libctf/ChangeLog b/libctf/ChangeLog
index 4879804..1754baf 100644
--- a/libctf/ChangeLog
+++ b/libctf/ChangeLog
@@ -1,5 +1,10 @@
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.
2020-07-22 Nick Alcock <nick.alcock@oracle.com>
diff --git a/libctf/ctf-types.c b/libctf/ctf-types.c
index db42b9e..ce3890c 100644
--- a/libctf/ctf-types.c
+++ b/libctf/ctf-types.c
@@ -472,19 +472,30 @@ ctf_type_name (ctf_file_t *fp, ctf_id_t type, char *buf, size_t len)
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;
}
diff --git a/libctf/libctf.ver b/libctf/libctf.ver
index aad304b..30a0b08 100644
--- a/libctf/libctf.ver
+++ b/libctf/libctf.ver
@@ -57,6 +57,7 @@ LIBCTF_1.0 {
ctf_type_resolve;
ctf_type_lname;
ctf_type_name;
+ ctf_type_name_raw;
ctf_type_aname;
ctf_type_aname_raw;
ctf_type_size;