Skip to content

Commit c9f1d90

Browse files
authored
[Comgr] Fix memory leak in comgr for TranslatedSpirvT (#440)
2 parents c6e8f63 + 789ebbc commit c9f1d90

File tree

2 files changed

+10
-0
lines changed

2 files changed

+10
-0
lines changed

amd/comgr/src/comgr-compiler.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2126,6 +2126,7 @@ amd_comgr_status_t AMDGPUCompiler::compileSpirvToRelocatable() {
21262126
amd_comgr_data_set_t TranslatedSpirvT;
21272127
if (auto Status = amd_comgr_create_data_set(&TranslatedSpirvT))
21282128
return Status;
2129+
ScopedDataSetReleaser SDSR(TranslatedSpirvT);
21292130
DataSet *TranslatedSpirv = DataSet::convert(TranslatedSpirvT);
21302131

21312132
if (auto Status = translateSpirvToBitcodeImpl(InSet, TranslatedSpirv))

amd/comgr/src/comgr.h

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,15 @@ class ScopedDataObjectReleaser {
133133
~ScopedDataObjectReleaser() { Obj->release(); }
134134
};
135135

136+
class ScopedDataSetReleaser {
137+
amd_comgr_data_set_t Set;
138+
139+
public:
140+
ScopedDataSetReleaser(amd_comgr_data_set_t Set) : Set(Set) {}
141+
142+
~ScopedDataSetReleaser() { amd_comgr_destroy_data_set(Set); }
143+
};
144+
136145
struct DataSet {
137146

138147
DataSet();

0 commit comments

Comments
 (0)