Skip to content

Commit 9a861da

Browse files
committed
MusicManager: change parents to raw pointers to avoid circular references
1 parent c01b997 commit 9a861da

2 files changed

Lines changed: 8 additions & 8 deletions

File tree

src/MusicManager.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -379,7 +379,7 @@ MusicEffect::MusicEffect(MNGEffectDecNode *n) {
379379
}
380380
}
381381

382-
std::vector<FloatAudioBuffer> MusicEffect::applyEffect(shared_ptr<class MusicTrack> t, std::vector<FloatAudioBuffer> src, float beatlength) {
382+
std::vector<FloatAudioBuffer> MusicEffect::applyEffect(class MusicTrack *t, std::vector<FloatAudioBuffer> src, float beatlength) {
383383
std::vector<FloatAudioBuffer> buffers;
384384

385385
for (std::vector<shared_ptr<MusicStage> >::iterator i = stages.begin(); i != stages.end(); i++) {
@@ -394,7 +394,7 @@ std::vector<FloatAudioBuffer> MusicEffect::applyEffect(shared_ptr<class MusicTra
394394

395395
MusicVoice::MusicVoice(shared_ptr<MusicLayer> p, MNGVoiceNode *n) {
396396
node = n;
397-
parent = p;
397+
parent = p.get();
398398

399399
interval = 0.0f;
400400
interval_expression = NULL;
@@ -461,7 +461,7 @@ bool MusicVoice::shouldPlay() {
461461
}
462462

463463
MusicLayer::MusicLayer(shared_ptr<MusicTrack> p) {
464-
parent = p;
464+
parent = p.get();
465465

466466
updaterate = 1.0f;
467467
volume = 1.0f;

src/MusicManager.h

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -97,14 +97,14 @@ class MusicEffect {
9797

9898
public:
9999
MusicEffect(MNGEffectDecNode *n);
100-
std::vector<FloatAudioBuffer> applyEffect(shared_ptr<class MusicTrack> t, std::vector<FloatAudioBuffer> src, float beatlength);
100+
std::vector<FloatAudioBuffer> applyEffect(class MusicTrack *t, std::vector<FloatAudioBuffer> src, float beatlength);
101101
};
102102

103103
class MusicVoice {
104104
protected:
105105
MNGVoiceNode *node;
106106
MNGUpdateNode *updatenode;
107-
shared_ptr<class MusicLayer> parent;
107+
class MusicLayer *parent;
108108
shared_ptr<MusicWave> wave;
109109
shared_ptr<MusicEffect> effect;
110110

@@ -121,14 +121,14 @@ class MusicVoice {
121121
shared_ptr<MusicEffect> getEffect() { return effect; }
122122
bool shouldPlay();
123123
void runUpdateBlock();
124-
shared_ptr<MusicLayer> getParent() { return parent; }
124+
MusicLayer *getParent() { return parent; }
125125
};
126126

127127
class MusicLayer : public boost::enable_shared_from_this<class MusicLayer> {
128128
protected:
129129
MNGUpdateNode *updatenode;
130130

131-
shared_ptr<MusicTrack> parent;
131+
MusicTrack *parent;
132132
unsigned int next_offset;
133133

134134
std::map<std::string, float> variables;
@@ -138,7 +138,7 @@ class MusicLayer : public boost::enable_shared_from_this<class MusicLayer> {
138138
void runUpdateBlock();
139139

140140
public:
141-
shared_ptr<MusicTrack> getParent() { return parent; }
141+
MusicTrack *getParent() { return parent; }
142142
float &getVariable(std::string name) { return variables[name]; }
143143
virtual void update(unsigned int latency) = 0;
144144
float getVolume() { return volume; }

0 commit comments

Comments
 (0)