mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-14 11:32:34 +00:00
Fix the OProfileJITEventListener for StringRef being returned from debug info.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90813 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
c59b33562c
commit
13027640e8
@ -69,24 +69,18 @@ OProfileJITEventListener::~OProfileJITEventListener() {
|
||||
}
|
||||
|
||||
class FilenameCache {
|
||||
// Holds the filename of each Scope, so that we can pass the
|
||||
// pointer into oprofile. These char*s are freed in the destructor.
|
||||
DenseMap<MDNode*, char*> Filenames;
|
||||
// Holds the filename of each Scope, so that we can pass a null-terminated
|
||||
// string into oprofile.
|
||||
DenseMap<MDNode*, std::string> Filenames;
|
||||
|
||||
public:
|
||||
const char *getFilename(MDNode *Scope) {
|
||||
char *&Filename = Filenames[Scope];
|
||||
std::string &Filename = Filenames[Scope];
|
||||
if (Filename == NULL) {
|
||||
DIScope S(Scope);
|
||||
Filename = strdup(S.getFilename());
|
||||
}
|
||||
return Filename;
|
||||
}
|
||||
~FilenameCache() {
|
||||
for (DenseMap<MDNode*, char*>::iterator
|
||||
I = Filenames.begin(), E = Filenames.end(); I != E; ++I) {
|
||||
free(I->second);
|
||||
Filename = S.getFilename();
|
||||
}
|
||||
return Filename.c_str();
|
||||
}
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user