aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/tag/TagItem.hxx2
-rw-r--r--src/tag/TagType.h13
2 files changed, 13 insertions, 2 deletions
diff --git a/src/tag/TagItem.hxx b/src/tag/TagItem.hxx
index f661a273b..a2924f2af 100644
--- a/src/tag/TagItem.hxx
+++ b/src/tag/TagItem.hxx
@@ -35,7 +35,7 @@ struct TagItem {
/**
* the value of this tag; this is a variable length string
*/
- char value[sizeof(long)];
+ char value[sizeof(long) - sizeof(type)];
TagItem() = default;
TagItem(const TagItem &other) = delete;
diff --git a/src/tag/TagType.h b/src/tag/TagType.h
index 8df595889..118d66a02 100644
--- a/src/tag/TagType.h
+++ b/src/tag/TagType.h
@@ -20,10 +20,21 @@
#ifndef MPD_TAG_TYPE_H
#define MPD_TAG_TYPE_H
+#ifdef __cplusplus
+#include <stdint.h>
+#endif
+
/**
* Codes for the type of a tag item.
*/
-enum tag_type {
+enum tag_type
+#ifdef __cplusplus
+/* the size of this enum is 1 byte; this is only relevant for C++
+ code; the only C sources including this header don't use instances
+ of this enum, they only refer to the integer values */
+: uint8_t
+#endif
+ {
TAG_ARTIST,
TAG_ARTIST_SORT,
TAG_ALBUM,