Skip to content

Commit

Permalink
Added method for properly freeing the positional data struct, althoug…
Browse files Browse the repository at this point in the history
…h as mentioned in code comment, could not get C++ destructor working
  • Loading branch information
JordanPlayz158 committed Sep 26, 2024
1 parent d83226c commit 9ad2a82
Showing 1 changed file with 25 additions and 0 deletions.
25 changes: 25 additions & 0 deletions plugins/MumblePlugin.h
Original file line number Diff line number Diff line change
Expand Up @@ -444,7 +444,23 @@ struct MumbleStringWrapper {
bool needsReleasing;
};

struct PositionalDataNoQt;

static void freePositionalDataStruct(PositionalDataNoQt *positionalData);

struct PositionalDataNoQt {
#ifdef __cplusplus
// Prevents compilation but generic functions
// such as the one below doesn't hinder compilation
// ~PositionalDataNoQt() {
// freePositionalDataStruct(this);
// }
//
void freeStruct() {
freePositionalDataStruct(this);
}
#endif

float m_playerPos[3];
float m_playerDir[3];
float m_playerAxis[3];
Expand All @@ -455,6 +471,15 @@ struct PositionalDataNoQt {
char *m_identity;
};

void freePositionalDataStruct(PositionalDataNoQt *positionalData) {
if (positionalData) {
free(positionalData->m_context);
free(positionalData->m_identity);
}

free(positionalData);
}

MUMBLE_EXTERN_C_END

#endif // EXTERNAL_MUMBLE_PLUGIN_TYPES_
Expand Down

0 comments on commit 9ad2a82

Please sign in to comment.