aboutsummaryrefslogtreecommitdiffstats
path: root/src/tag
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2013-09-26 18:14:58 +0200
committerMax Kellermann <max@duempel.org>2013-09-26 18:14:58 +0200
commit04bc9005aeeebc7b1af90f74c4873b3a835d67ac (patch)
treece819fc2ae6051816f3eba9341cb796fb3f62c25 /src/tag
parent3c92c69bc7b0b216051d10a02536e566a27dea00 (diff)
downloadmpd-04bc9005aeeebc7b1af90f74c4873b3a835d67ac.tar.gz
mpd-04bc9005aeeebc7b1af90f74c4873b3a835d67ac.tar.xz
mpd-04bc9005aeeebc7b1af90f74c4873b3a835d67ac.zip
TagType: reduce the enum size to 1 byte
Reduce the TagItem overhead.
Diffstat (limited to 'src/tag')
-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,