forked from OSchip/llvm-project
make sure to unlock keymgr if the JIT is created and destroyed, all
locks must be matched with unlocks. Also, use calloc to allocate the block so that it is properly zero'd. Thanks to Nick Kledzik for tracking this down. llvm-svn: 69314
This commit is contained in:
parent
de578e8cc6
commit
11ceb38df0
|
@ -237,11 +237,9 @@ JIT::JIT(ModuleProvider *MP, TargetMachine &tm, TargetJITInfo &tji,
|
|||
// The key is created on demand, and libgcc creates it the first time an
|
||||
// exception occurs. Since we need the key to register frames, we create
|
||||
// it now.
|
||||
if (!LOI) {
|
||||
LOI = (LibgccObjectInfo*)malloc(sizeof(struct LibgccObjectInfo));
|
||||
_keymgr_set_and_unlock_processwide_ptr(KEYMGR_GCC3_DW2_OBJ_LIST,
|
||||
LOI);
|
||||
}
|
||||
if (!LOI)
|
||||
LOI = (LibgccObjectInfo*)calloc(sizeof(struct LibgccObjectInfo), 1);
|
||||
_keymgr_set_and_unlock_processwide_ptr(KEYMGR_GCC3_DW2_OBJ_LIST, LOI);
|
||||
InstallExceptionTableRegister(DarwinRegisterFrame);
|
||||
#else
|
||||
InstallExceptionTableRegister(__register_frame);
|
||||
|
|
Loading…
Reference in New Issue