MCPcopy Create free account
hub / github.com/axmolengine/axmol / allocVoiceProps

Method allocVoiceProps

3rdparty/openal/core/context.cpp:99–116  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

97}
98
99void ContextBase::allocVoiceProps()
100{
101 constexpr size_t clustersize{32};
102
103 TRACE("Increasing allocated voice properties to %zu\n",
104 (mVoicePropClusters.size()+1) * clustersize);
105
106 VoicePropsCluster cluster{std::make_unique<VoicePropsItem[]>(clustersize)};
107 for(size_t i{1};i < clustersize;++i)
108 cluster[i-1].next.store(std::addressof(cluster[i]), std::memory_order_relaxed);
109 mVoicePropClusters.emplace_back(std::move(cluster));
110
111 VoicePropsItem *oldhead{mFreeVoiceProps.load(std::memory_order_acquire)};
112 do {
113 mVoicePropClusters.back()[clustersize-1].next.store(oldhead, std::memory_order_relaxed);
114 } while(mFreeVoiceProps.compare_exchange_weak(oldhead, mVoicePropClusters.back().get(),
115 std::memory_order_acq_rel, std::memory_order_acquire) == false);
116}
117
118void ContextBase::allocVoices(size_t addcount)
119{

Callers 1

UpdateSourcePropsFunction · 0.80

Calls 6

storeMethod · 0.80
sizeMethod · 0.45
emplace_backMethod · 0.45
loadMethod · 0.45
backMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected