Lines Matching full:handle
32 static void DLClose(void *Handle);
33 static void *DLSym(void *Handle, const char *Symbol);
38 HandleList::iterator Find(void *Handle) { return find(Handles, Handle); } in Find() argument
40 bool Contains(void *Handle) { in Contains() argument
41 return Handle == Process || Find(Handle) != Handles.end(); in Contains()
44 bool AddLibrary(void *Handle, bool IsProcess = false, bool CanClose = true, in AddLibrary() argument
47 assert((Handle == this ? IsProcess : !IsProcess) && "Bad Handle."); in AddLibrary()
53 if (!AllowDuplicates && Find(Handle) != Handles.end()) { in AddLibrary()
55 DLClose(Handle); in AddLibrary()
58 Handles.push_back(Handle); in AddLibrary()
64 if (Process == Handle) in AddLibrary()
68 Process = Handle; in AddLibrary()
73 void CloseLibrary(void *Handle) { in CloseLibrary() argument
74 DLClose(Handle); in CloseLibrary()
75 HandleList::iterator it = Find(Handle); in CloseLibrary()
83 for (void *Handle : Handles) { in LibLookup() local
84 if (void *Ptr = DLSym(Handle, Symbol)) in LibLookup()
88 for (void *Handle : llvm::reverse(Handles)) { in LibLookup() local
89 if (void *Ptr = DLSym(Handle, Symbol)) in LibLookup()
168 void *Handle = HandleSet::DLOpen(FileName, Err); in getPermanentLibrary() local
169 if (Handle != &Invalid) { in getPermanentLibrary()
171 G.OpenedHandles.AddLibrary(Handle, /*IsProcess*/ FileName == nullptr); in getPermanentLibrary()
174 return DynamicLibrary(Handle); in getPermanentLibrary()
177 DynamicLibrary DynamicLibrary::addPermanentLibrary(void *Handle, in addPermanentLibrary() argument
182 if (!G.OpenedHandles.AddLibrary(Handle, /*IsProcess*/ false, in addPermanentLibrary()
186 return DynamicLibrary(Handle); in addPermanentLibrary()
191 assert(FileName && "Use getPermanentLibrary() for opening process handle"); in getLibrary()
192 void *Handle = HandleSet::DLOpen(FileName, Err); in getLibrary() local
193 if (Handle != &Invalid) { in getLibrary()
196 G.OpenedTemporaryHandles.AddLibrary(Handle, /*IsProcess*/ false, in getLibrary()
200 return DynamicLibrary(Handle); in getLibrary()