aboutsummaryrefslogtreecommitdiffstats
path: root/Alc
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2017-04-18 14:11:15 -0700
committerChris Robinson <[email protected]>2017-04-18 14:11:15 -0700
commit55011d4bfd46c920580d1aa6663bcfdb1e996d3e (patch)
tree67040a4f7e98acedc060930e146854f61dd8e71b /Alc
parentde62ab97e912525f20272153f6a4c896e833839d (diff)
Use a different way to get the size of structs with flexible array members
Diffstat (limited to 'Alc')
-rw-r--r--Alc/ALc.c6
-rw-r--r--Alc/ALu.c2
-rw-r--r--Alc/converter.c2
-rw-r--r--Alc/hrtf.c4
-rw-r--r--Alc/panning.c4
5 files changed, 8 insertions, 10 deletions
diff --git a/Alc/ALc.c b/Alc/ALc.c
index a352cacd..ecd8fd0d 100644
--- a/Alc/ALc.c
+++ b/Alc/ALc.c
@@ -2501,7 +2501,7 @@ static ALvoid InitContext(ALCcontext *Context)
InitUIntMap(&Context->SourceMap, Context->Device->SourcesMax);
InitUIntMap(&Context->EffectSlotMap, Context->Device->AuxiliaryEffectSlotMax);
- auxslots = al_calloc(DEF_ALIGN, offsetof(struct ALeffectslotArray, slot[0]));
+ auxslots = al_calloc(DEF_ALIGN, sizeof(struct ALeffectslotArray));
auxslots->count = 0;
ATOMIC_INIT(&Context->ActiveAuxSlots, auxslots);
@@ -2725,8 +2725,8 @@ void AllocateVoices(ALCcontext *context, ALsizei num_voices, ALsizei old_sends)
* property set (including the dynamically-sized Send[] array) in one
* chunk.
*/
- sizeof_props = RoundUp(offsetof(struct ALvoiceProps, Send[num_sends]), 16);
- sizeof_voice = RoundUp(offsetof(ALvoice, Send[num_sends]), 16);
+ sizeof_props = RoundUp(FAM_SIZE(struct ALvoiceProps, Send, num_sends), 16);
+ sizeof_voice = RoundUp(FAM_SIZE(ALvoice, Send, num_sends), 16);
size = sizeof(ALvoice*) + sizeof_voice + sizeof_props;
voices = al_calloc(16, RoundUp(size*num_voices, 16));
diff --git a/Alc/ALu.c b/Alc/ALu.c
index 4a4709b0..da3ae9d5 100644
--- a/Alc/ALu.c
+++ b/Alc/ALu.c
@@ -1283,7 +1283,7 @@ static void CalcSourceParams(ALvoice *voice, ALCcontext *context, ALboolean forc
if(props)
{
memcpy(voice->Props, props,
- offsetof(struct ALvoiceProps, Send[context->Device->NumAuxSends])
+ FAM_SIZE(struct ALvoiceProps, Send, context->Device->NumAuxSends)
);
ATOMIC_REPLACE_HEAD(struct ALvoiceProps*, &voice->FreeList, props);
diff --git a/Alc/converter.c b/Alc/converter.c
index 99069d15..f1a3a96b 100644
--- a/Alc/converter.c
+++ b/Alc/converter.c
@@ -13,7 +13,7 @@ SampleConverter *CreateSampleConverter(enum DevFmtType srcType, enum DevFmtType
if(numchans <= 0 || srcRate <= 0 || dstRate <= 0)
return NULL;
- converter = al_calloc(16, offsetof(SampleConverter, Chan[numchans]));
+ converter = al_calloc(16, FAM_SIZE(SampleConverter, Chan, numchans));
converter->mSrcType = srcType;
converter->mDstType = dstType;
converter->mNumChannels = numchans;
diff --git a/Alc/hrtf.c b/Alc/hrtf.c
index 23817d66..3047915b 100644
--- a/Alc/hrtf.c
+++ b/Alc/hrtf.c
@@ -688,7 +688,7 @@ static void AddFileEntry(vector_EnumeratedHrtf *list, const_al_string filename)
TRACE("Got new file \"%s\"\n", alstr_get_cstr(filename));
loaded_entry = al_calloc(DEF_ALIGN,
- offsetof(struct HrtfEntry, filename[alstr_length(filename)+1])
+ FAM_SIZE(struct HrtfEntry, filename, alstr_length(filename)+1)
);
loaded_entry->next = LoadedHrtfs;
loaded_entry->handle = NULL;
@@ -769,7 +769,7 @@ static void AddBuiltInEntry(vector_EnumeratedHrtf *list, const_al_string filenam
TRACE("Got new file \"%s\"\n", alstr_get_cstr(filename));
loaded_entry = al_calloc(DEF_ALIGN,
- offsetof(struct HrtfEntry, filename[namelen])
+ FAM_SIZE(struct HrtfEntry, filename, namelen)
);
loaded_entry->next = LoadedHrtfs;
loaded_entry->handle = hrtf;
diff --git a/Alc/panning.c b/Alc/panning.c
index e4941720..5ce93b9b 100644
--- a/Alc/panning.c
+++ b/Alc/panning.c
@@ -922,13 +922,11 @@ static void InitHrtfPanning(ALCdevice *device, bool hoa_mode)
};
const ALfloat (*AmbiMatrix)[2][MAX_AMBI_COEFFS] = hoa_mode ? AmbiMatrixHOA : AmbiMatrixFOA;
ALsizei count = hoa_mode ? 9 : 4;
- size_t sizeof_hrtfstate;
ALsizei i;
static_assert(COUNTOF(AmbiPoints) <= HRTF_AMBI_MAX_CHANNELS, "HRTF_AMBI_MAX_CHANNELS is too small");
- sizeof_hrtfstate = offsetof(DirectHrtfState, Chan[count]);
- device->Hrtf = al_calloc(16, sizeof_hrtfstate);
+ device->Hrtf = al_calloc(16, FAM_SIZE(DirectHrtfState, Chan, count));
for(i = 0;i < count;i++)
{