| 1215 | struct ApiResolver |
| 1216 | { |
| 1217 | struct ResolverImpl |
| 1218 | { |
| 1219 | void *(*Open)(const char *filename, int flag); |
| 1220 | void *(*Resolve)(void *handle, const char *symbol); |
| 1221 | int (*Close)(void *handle); |
| 1222 | |
| 1223 | ResolverImpl() |
| 1224 | : Open(dlopen), |
| 1225 | Resolve(dlsym), |
| 1226 | Close(dlclose) |
| 1227 | { |
| 1228 | } |
| 1229 | |
| 1230 | ResolverImpl(decltype(Open) open, decltype(Resolve) resolve, decltype(Close) close) |
| 1231 | : Open(open), |
| 1232 | Resolve(resolve), |
| 1233 | Close(close) |
| 1234 | { |
| 1235 | } |
| 1236 | }; |
| 1237 | |
| 1238 | static void Resolve(const ResolverImpl &resolver = {}) |
| 1239 | { |
nothing calls this directly
no outgoing calls
no test coverage detected