bool AddLibrary(void *Handle, bool IsProcess = false, bool CanClose = true) { #ifdef LLVM_ON_WIN32 assert((Handle == this ? IsProcess : !IsProcess) && "Bad Handle."); #endif if (LLVM_LIKELY(!IsProcess)) { if (Find(Handle) != Handles.end()) { if (CanClose) DLClose(Handle); return false; } Handles.push_back(Handle); } else { #ifndef LLVM_ON_WIN32 if (Process) { if (CanClose) DLClose(Process); if (Process == Handle) return false; } #endif Process = Handle; } return true; }