aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libctf/ChangeLog5
-rw-r--r--libctf/ctf-create.c2
-rw-r--r--libctf/ctf-inlines.h6
3 files changed, 12 insertions, 1 deletions
diff --git a/libctf/ChangeLog b/libctf/ChangeLog
index b3a816c..c22cba0 100644
--- a/libctf/ChangeLog
+++ b/libctf/ChangeLog
@@ -1,5 +1,10 @@
2020-07-22 Nick Alcock <nick.alcock@oracle.com>
+ * ctf-inlines.h (ctf_forwardable_kind): New.
+ * ctf-create.c (ctf_add_forward): Use it.
+
+2020-07-22 Nick Alcock <nick.alcock@oracle.com>
+
* ctf-impl.h (ctf_get_ctt_size): Move definition from here...
* ctf-inlines.h (ctf_get_ctt_size): ... to here.
diff --git a/libctf/ctf-create.c b/libctf/ctf-create.c
index c13b83d..d50367d 100644
--- a/libctf/ctf-create.c
+++ b/libctf/ctf-create.c
@@ -1241,7 +1241,7 @@ ctf_add_forward (ctf_file_t *fp, uint32_t flag, const char *name,
ctf_dtdef_t *dtd;
ctf_id_t type = 0;
- if (kind != CTF_K_STRUCT && kind != CTF_K_UNION && kind != CTF_K_ENUM)
+ if (!ctf_forwardable_kind (kind))
return (ctf_set_errno (fp, ECTF_NOTSUE));
/* If the type is already defined or exists as a forward tag, just
diff --git a/libctf/ctf-inlines.h b/libctf/ctf-inlines.h
index 4bec97b..3b912bd 100644
--- a/libctf/ctf-inlines.h
+++ b/libctf/ctf-inlines.h
@@ -40,6 +40,12 @@ ctf_get_ctt_size (const ctf_file_t *fp,
return (fp->ctf_fileops->ctfo_get_ctt_size (fp, tp, sizep, incrementp));
}
+static inline int
+ctf_forwardable_kind (int kind)
+{
+ return (kind == CTF_K_STRUCT || kind == CTF_K_UNION || kind == CTF_K_ENUM);
+}
+
static inline int
ctf_dynhash_cinsert (ctf_dynhash_t *h, const void *k, const void *v)