History

Remove code for dynamically loading a trace library

No code exists within the project for building such a trace library. This also fixes building on OS X with -Wno-deprecated-declarations removed, since this code contained calls to deprecated functions within #ifdef MACOS, which now are enabled when building on OS X.

Martin Storsjö committed 12 years ago

Commit dd7911b1 parent fcd7a136 files · +8 −361Browse files

Showing the changes to codec/decoder/plus/src/welsCodecTrace.cpp (1 of 6 files). Show all

Unified · Split

codec/decoder/plus/src/welsCodecTrace.cpp+0−181
@@ -45,91 +45,11 @@ · 44 unmodified lines
4545 #include "welsCodecTrace.h"
4646 #include "utils.h"
4747 #include "logging.h"
48−#if defined LINUX || defined SOLARIS || defined UNIX || defined MACOS //LINUX/SOLARIS/UNIX
49−#include <dlfcn.h>
50−#endif
51−
52−#if defined(MACOS)
53−#include <carbon/carbon.h>
54−#include <CoreFoundation/CFBundle.h>
55−#endif//MACOS
5648
5749 //using namespace WelsDec;
5850
5951 namespace WelsDec {
6052
61−#ifdef MACOS
62−static CFBundleRef LoadLibrary (const char* lpszbundle) {
63− // 1.get bundle path
64− char cBundlePath[PATH_MAX];
65− memset (cBundlePath, 0, PATH_MAX);
66−
67− Dl_info dlInfo;
68− static int sDummy;
69− dladdr ((void_t*)&sDummy, &dlInfo);
70−
71− strlcpy (cBundlePath, dlInfo.dli_fname, PATH_MAX);
72−
73− char* pPath = NULL;
74− for (int i = 4; i > 0; i--) {
75− pPath = strrchr (cBundlePath, '/'); //confirmed_safe_unsafe_usage
76− if (pPath) {
77− *pPath = 0;
78− } else {
79− break;
80− }
81− }
82− if (pPath) {
83− strlcat (cBundlePath, "/", PATH_MAX);
84− } else {
85− return NULL;
86− }
87−
88− strlcat (cBundlePath, lpszbundle, PATH_MAX);
89−
90− FSRef bundlePath;
91− OSStatus iStatus = FSPathMakeRef ((unsigned char*)cBundlePath, &bundlePath, NULL);
92− if (noErr != iStatus)
93− return NULL;
94−
95− CFURLRef bundleURL = CFURLCreateFromFSRef (kCFAllocatorSystemDefault, &bundlePath);
96− if (NULL == bundleURL)
97− return NULL;
98−
99− // 2.get bundle ref
100− CFBundleRef bundleRef = CFBundleCreate (kCFAllocatorSystemDefault, bundleURL);
101− CFRelease (bundleURL);
102−
103−// Boolean bReturn = FALSE;
104− if (NULL != bundleRef) {
105− // bReturn = CFBundleLoadExecutable(bundleRef);
106− }
107−
108− return bundleRef;
109−}
110−
111−static Boolean FreeLibrary (CFBundleRef bundle) {
112− if (NULL != bundle) {
113− // CFBundleUnloadExecutable(bundle);
114− CFRelease (bundle);
115− }
116−
117− return TRUE;
118−}
119−
120−static void_t* GetProcessAddress (CFBundleRef bundle, const char* lpszprocname) {
121− if (NULL == bundle)
122− return NULL;
123−
124− CFStringRef cfprocname = CFStringCreateWithCString (NULL, lpszprocname, CFStringGetSystemEncoding());
125− void_t* processAddress = CFBundleGetFunctionPointerForName (bundle, cfprocname);
126− CFRelease (cfprocname);
127−
128− return processAddress;
129−}
130−#endif
131−
132−
13353
13454 int32_t CWelsTraceBase::SetTraceLevel (int iLevel) {
13555 m_iLevel = iLevel;
@@ -191,7 +111,6 @@ int32_t CWelsTraceWinDgb::WriteString (int32_t iLevel, const str_t* pStr) { · 55 unmodified lines
191111 #endif
192112
193113 CWelsCodecTrace::CWelsCodecTrace() {
194− m_hTraceHandle = NULL;
195114 m_fpDebugTrace = NULL;
196115 m_fpInfoTrace = NULL;
197116 m_fpWarnTrace = NULL;
@@ -205,111 +124,14 @@ CWelsCodecTrace::~CWelsCodecTrace() { · 7 unmodified lines
205124 }
206125
207126 int32_t CWelsCodecTrace::LoadWelsTraceModule() {
208−#ifdef NO_DYNAMIC_VP
209127 m_fpDebugTrace = welsStderrTrace<WELS_LOG_DEBUG>;
210128 m_fpInfoTrace = welsStderrTrace<WELS_LOG_INFO>;
211129 m_fpWarnTrace = welsStderrTrace<WELS_LOG_WARNING>;
212130 m_fpErrorTrace = welsStderrTrace<WELS_LOG_ERROR>;
213−#else
214−#if defined _WIN32
215− HMODULE hHandle = ::LoadLibrary ("welstrace.dll");
216−// HMODULE handle = ::LoadLibrary("contrace.dll"); // for c7 trace
217− if (NULL == hHandle)
218− return -1;
219−
220− CHAR chPath[ _MAX_PATH] = {0};
221− GetModuleFileName ((HMODULE)hHandle, chPath, _MAX_PATH);
222−
223− m_hTraceHandle = ::LoadLibrary (chPath);
224−
225− OutputDebugStringA (chPath);
226− if (m_hTraceHandle) {
227− m_fpDebugTrace = (CM_WELS_TRACE)::GetProcAddress ((HMODULE)m_hTraceHandle, "WELSDEBUGA");
228− m_fpInfoTrace = (CM_WELS_TRACE)::GetProcAddress ((HMODULE)m_hTraceHandle, "WELSINFOA");
229− m_fpWarnTrace = (CM_WELS_TRACE)::GetProcAddress ((HMODULE)m_hTraceHandle, "WELSWARNA");
230− m_fpErrorTrace = (CM_WELS_TRACE)::GetProcAddress ((HMODULE)m_hTraceHandle, "WELSERRORA");
231− }
232−
233− // coverity scan uninitial
234− if (hHandle != NULL) {
235− ::FreeLibrary (hHandle);
236− hHandle = NULL;
237− }
238−#elif defined MACOS
239− m_hTraceHandle = LoadLibrary ("welstrace.bundle");
240− if (m_hTraceHandle) {
241− m_fpDebugTrace = (CM_WELS_TRACE)GetProcessAddress ((CFBundleRef)m_hTraceHandle, "WELSDEBUG2");
242− m_fpInfoTrace = (CM_WELS_TRACE)GetProcessAddress ((CFBundleRef)m_hTraceHandle, "WELSINFO2");
243− m_fpWarnTrace = (CM_WELS_TRACE)GetProcessAddress ((CFBundleRef)m_hTraceHandle, "WELSWARN2");
244− m_fpErrorTrace = (CM_WELS_TRACE)GetProcessAddress ((CFBundleRef)m_hTraceHandle, "WELSERROR2");
245− }
246−#elif defined LINUX || defined SOLARIS || defined UNIX
247−//#else
248−// CCmString cmPath;
249− str_t chPath[255] = {0};
250− Dl_info sDlInfo;
251− static int iMmTPAddress;
252− dladdr (&iMmTPAddress, &sDlInfo);
253−
254− if (NULL == sDlInfo.dli_fname)
255− return -1;
256− WelsStrncpy (chPath, 255, (const str_t*)sDlInfo.dli_fname, WelsStrnlen ((const str_t*)sDlInfo.dli_fname, 255));
257− str_t* p = strrchr (chPath, '/'); //confirmed_safe_unsafe_usage
258− if (NULL == p)
259− return -1;
260− const int iLenTraceName = WelsStrnlen ((const str_t*)"/libwelstrace.so", 15);
261− const int iCurPos = p - chPath;
262− if (iCurPos + iLenTraceName < 255)
263− WelsStrncpy (p, 254 - iCurPos, (const str_t*)"/libwelstrace.so", iLenTraceName);
264− else
265− return -1;
266−
267− m_hTraceHandle = dlopen (chPath, RTLD_LAZY);
268− if (m_hTraceHandle == NULL) {
269− WelsFileHandle* fp = WelsFopen ((const str_t*)"/tmp/trace.txt", (const str_t*)"a");
270− if (fp) {
271− fprintf (fp, "welsCodecTrace::welsCodecTrace ===> dlopen %s fail, %s\n", chPath, dlerror());
272− WelsFclose (fp);
273− }
274− return -1;
275− }
276− if (m_hTraceHandle) {
277− m_fpDebugTrace = (CM_WELS_TRACE)dlsym (m_hTraceHandle, "WELSDEBUG2");
278− m_fpInfoTrace = (CM_WELS_TRACE)dlsym (m_hTraceHandle, "WELSINFO2");
279− m_fpWarnTrace = (CM_WELS_TRACE)dlsym (m_hTraceHandle, "WELSWARN2");
280− m_fpErrorTrace = (CM_WELS_TRACE)dlsym (m_hTraceHandle, "WELSERROR2");
281− if (m_fpDebugTrace == NULL) {
282− WelsFileHandle* fp = WelsFopen ((const str_t*)"/tmp/trace.txt", (const str_t*)"a");
283− if (fp) {
284− printf ("welsCodecTrace::welsCodecTrace ===> dlsym failed (WELSDEBUG2) , dlerror = %s\n", dlerror());
285− WelsFclose (fp);
286− }
287− return -1;
288− }
289− }
290−#endif
291−#endif // NO_DYNAMIC_VP
292131 return 0;
293132 }
294133
295134 int32_t CWelsCodecTrace::UnloadWelsTraceModule() {
296−#ifndef NO_DYNAMIC_VP
297−#if defined _WIN32
298− if (m_hTraceHandle) {
299− ::FreeLibrary ((HMODULE)m_hTraceHandle);
300− }
301−#elif defined MACOS
302− if (m_hTraceHandle) {
303− FreeLibrary ((CFBundleRef)m_hTraceHandle);
304− }
305−#elif defined LINUX || defined SOLARIS || defined UNIX
306− if (m_hTraceHandle) {
307− ::dlclose (m_hTraceHandle);
308− }
309−#endif
310−#endif
311−
312− m_hTraceHandle = NULL;
313135 m_fpDebugTrace = NULL;
314136 m_fpInfoTrace = NULL;
315137 m_fpWarnTrace = NULL;
@@ -318,9 +140,6 @@ int32_t CWelsCodecTrace::UnloadWelsTraceModule() { · 2 unmodified lines
318140 }
319141
320142 int32_t CWelsCodecTrace::WriteString (int32_t iLevel, const str_t* pStr) {
321−#ifndef NO_DYNAMIC_VP
322− if (m_hTraceHandle)
323−#endif
324143 {
325144 #ifdef _WIN32
326145 switch (iLevel) {

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t