summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDiego 'Flameeyes' Pettenò <flameeyes@gmail.com>2007-12-18 20:34:40 +0100
committerDiego 'Flameeyes' Pettenò <flameeyes@gmail.com>2007-12-18 20:34:40 +0100
commitd3298c9017077d3ea3ea91110dcac349d58448a9 (patch)
treedfdb9d026dd4d7422aed9a5d868829d4ec791277
parent1a366138f0b39cfa1d8586d54f5dfce296a001d2 (diff)
downloadxine-lib-d3298c9017077d3ea3ea91110dcac349d58448a9.tar.gz
xine-lib-d3298c9017077d3ea3ea91110dcac349d58448a9.tar.bz2
Replace seven calls to parse_data_atom with a single call, and then set the value on the proper structure.
This way, parse_data_atom is inlined by GCC.
-rw-r--r--src/demuxers/demux_qt.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/demuxers/demux_qt.c b/src/demuxers/demux_qt.c
index 3cd573530..4c9399608 100644
--- a/src/demuxers/demux_qt.c
+++ b/src/demuxers/demux_qt.c
@@ -801,31 +801,33 @@ static void parse_meta_atom(qt_info *info, unsigned char *meta_atom) {
const uint8_t *const sub_atom = &meta_atom[j];
const qt_atom sub_atom_code = _X_BE_32(&sub_atom[4]);
const uint32_t sub_atom_size = _X_BE_32(&sub_atom[0]);
+ char *const data_atom = parse_data_atom(&sub_atom[8]);
switch(sub_atom_code) {
case ART_ATOM:
- info->artist = parse_data_atom(&sub_atom[8]);
+ info->artist = data_atom;
break;
case NAM_ATOM:
- info->name = parse_data_atom(&sub_atom[8]);
+ info->name = data_atom;
break;
case ALB_ATOM:
- info->album = parse_data_atom(&sub_atom[8]);
+ info->album = data_atom;
break;
case GEN_ATOM:
- info->genre = parse_data_atom(&sub_atom[8]);
+ info->genre = data_atom;
break;
case CMT_ATOM:
- info->comment = parse_data_atom(&sub_atom[8]);
+ info->comment = data_atom;
break;
case WRT_ATOM:
- info->composer = parse_data_atom(&sub_atom[8]);
+ info->composer = data_atom;
break;
case DAY_ATOM:
- info->year = parse_data_atom(&sub_atom[8]);
+ info->year = data_atom;
break;
default:
debug_meta_load("unknown atom %08x in ilst\n", sub_atom_code);
+ free(data_atom);
}
j += sub_atom_size;