bad delete operator, should be delete [] for gs_FSMimeFallbacks and removing debug allocs and deallocs for OS/2 in memory.cpp
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8736 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -195,20 +195,20 @@ static wxString MakeCorrectPath(const wxString& path)
|
|||||||
wxString p(path);
|
wxString p(path);
|
||||||
wxString r;
|
wxString r;
|
||||||
int i, j, cnt;
|
int i, j, cnt;
|
||||||
|
|
||||||
cnt = p.Length();
|
cnt = p.Length();
|
||||||
for (i = 0; i < cnt; i++)
|
for (i = 0; i < cnt; i++)
|
||||||
if (p.GetChar(i) == wxT('\\')) p.GetWritableChar(i) = wxT('/'); // Want to be windows-safe
|
if (p.GetChar(i) == wxT('\\')) p.GetWritableChar(i) = wxT('/'); // Want to be windows-safe
|
||||||
|
|
||||||
if (p.Left(2) == wxT("./")) { p = p.Mid(2); cnt -= 2; }
|
if (p.Left(2) == wxT("./")) { p = p.Mid(2); cnt -= 2; }
|
||||||
|
|
||||||
if (cnt < 3) return p;
|
if (cnt < 3) return p;
|
||||||
|
|
||||||
r << p.GetChar(0) << p.GetChar(1);
|
r << p.GetChar(0) << p.GetChar(1);
|
||||||
|
|
||||||
// skip trailing ../.., if any
|
// skip trailing ../.., if any
|
||||||
for (i = 2; i < cnt && (p.GetChar(i) == wxT('/') || p.GetChar(i) == wxT('.')); i++) r << p.GetChar(i);
|
for (i = 2; i < cnt && (p.GetChar(i) == wxT('/') || p.GetChar(i) == wxT('.')); i++) r << p.GetChar(i);
|
||||||
|
|
||||||
// remove back references: translate dir1/../dir2 to dir2
|
// remove back references: translate dir1/../dir2 to dir2
|
||||||
for (; i < cnt; i++)
|
for (; i < cnt; i++)
|
||||||
{
|
{
|
||||||
@@ -223,9 +223,9 @@ static wxString MakeCorrectPath(const wxString& path)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (; i < cnt; i++) r << p.GetChar(i);
|
for (; i < cnt; i++) r << p.GetChar(i);
|
||||||
|
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -241,7 +241,7 @@ void wxFileSystem::ChangePathTo(const wxString& location, bool is_dir)
|
|||||||
if (m_Path.Length() > 0 && m_Path.Last() != wxT('/') && m_Path.Last() != wxT(':'))
|
if (m_Path.Length() > 0 && m_Path.Last() != wxT('/') && m_Path.Last() != wxT(':'))
|
||||||
m_Path << wxT('/');
|
m_Path << wxT('/');
|
||||||
}
|
}
|
||||||
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
for (i = m_Path.Length()-1; i >= 0; i--)
|
for (i = m_Path.Length()-1; i >= 0; i--)
|
||||||
@@ -300,7 +300,7 @@ wxFSFile* wxFileSystem::OpenFile(const wxString& location)
|
|||||||
{
|
{
|
||||||
switch (loc[i])
|
switch (loc[i])
|
||||||
{
|
{
|
||||||
case wxT('/') : case wxT(':') : case wxT('#') :
|
case wxT('/') : case wxT(':') : case wxT('#') :
|
||||||
meta = loc[i];
|
meta = loc[i];
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -348,7 +348,7 @@ wxString wxFileSystem::FindFirst(const wxString& spec, int flags)
|
|||||||
{
|
{
|
||||||
wxNode *node;
|
wxNode *node;
|
||||||
wxString spec2(spec);
|
wxString spec2(spec);
|
||||||
|
|
||||||
m_FindFileHandler = NULL;
|
m_FindFileHandler = NULL;
|
||||||
|
|
||||||
for (int i = spec2.Length()-1; i >= 0; i--)
|
for (int i = spec2.Length()-1; i >= 0; i--)
|
||||||
@@ -358,10 +358,10 @@ wxString wxFileSystem::FindFirst(const wxString& spec, int flags)
|
|||||||
while (node)
|
while (node)
|
||||||
{
|
{
|
||||||
m_FindFileHandler = (wxFileSystemHandler*) node -> GetData();
|
m_FindFileHandler = (wxFileSystemHandler*) node -> GetData();
|
||||||
if (m_FindFileHandler -> CanOpen(m_Path + spec2))
|
if (m_FindFileHandler -> CanOpen(m_Path + spec2))
|
||||||
return m_FindFileHandler -> FindFirst(m_Path + spec2, flags);
|
return m_FindFileHandler -> FindFirst(m_Path + spec2, flags);
|
||||||
node = node->GetNext();
|
node = node->GetNext();
|
||||||
}
|
}
|
||||||
|
|
||||||
node = m_Handlers.GetFirst();
|
node = m_Handlers.GetFirst();
|
||||||
while (node)
|
while (node)
|
||||||
@@ -370,9 +370,9 @@ wxString wxFileSystem::FindFirst(const wxString& spec, int flags)
|
|||||||
if (m_FindFileHandler -> CanOpen(spec2))
|
if (m_FindFileHandler -> CanOpen(spec2))
|
||||||
return m_FindFileHandler -> FindFirst(spec2, flags);
|
return m_FindFileHandler -> FindFirst(spec2, flags);
|
||||||
node = node->GetNext();
|
node = node->GetNext();
|
||||||
}
|
}
|
||||||
|
|
||||||
return wxEmptyString;
|
return wxEmptyString;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -410,47 +410,47 @@ class wxFileSystemModule : public wxModule
|
|||||||
virtual bool OnInit()
|
virtual bool OnInit()
|
||||||
{
|
{
|
||||||
wxFileSystem::AddHandler(new wxLocalFSHandler);
|
wxFileSystem::AddHandler(new wxLocalFSHandler);
|
||||||
|
|
||||||
gs_FSMimeFallbacks = new wxFileTypeInfo[6];
|
gs_FSMimeFallbacks = new wxFileTypeInfo[6];
|
||||||
gs_FSMimeFallbacks[0] =
|
gs_FSMimeFallbacks[0] =
|
||||||
wxFileTypeInfo("image/jpeg",
|
wxFileTypeInfo("image/jpeg",
|
||||||
"",
|
"",
|
||||||
"",
|
"",
|
||||||
"JPEG image (from fallback)",
|
"JPEG image (from fallback)",
|
||||||
"jpg", "jpeg", NULL);
|
"jpg", "jpeg", NULL);
|
||||||
gs_FSMimeFallbacks[1] =
|
gs_FSMimeFallbacks[1] =
|
||||||
wxFileTypeInfo("image/gif",
|
wxFileTypeInfo("image/gif",
|
||||||
"",
|
"",
|
||||||
"",
|
"",
|
||||||
"GIF image (from fallback)",
|
"GIF image (from fallback)",
|
||||||
"gif", NULL);
|
"gif", NULL);
|
||||||
gs_FSMimeFallbacks[2] =
|
gs_FSMimeFallbacks[2] =
|
||||||
wxFileTypeInfo("image/png",
|
wxFileTypeInfo("image/png",
|
||||||
"",
|
"",
|
||||||
"",
|
"",
|
||||||
"PNG image (from fallback)",
|
"PNG image (from fallback)",
|
||||||
"png", NULL);
|
"png", NULL);
|
||||||
gs_FSMimeFallbacks[3] =
|
gs_FSMimeFallbacks[3] =
|
||||||
wxFileTypeInfo("image/bmp",
|
wxFileTypeInfo("image/bmp",
|
||||||
"",
|
"",
|
||||||
"",
|
"",
|
||||||
"windows bitmap image (from fallback)",
|
"windows bitmap image (from fallback)",
|
||||||
"bmp", NULL);
|
"bmp", NULL);
|
||||||
gs_FSMimeFallbacks[4] =
|
gs_FSMimeFallbacks[4] =
|
||||||
wxFileTypeInfo("text/html",
|
wxFileTypeInfo("text/html",
|
||||||
"",
|
"",
|
||||||
"",
|
"",
|
||||||
"HTML document (from fallback)",
|
"HTML document (from fallback)",
|
||||||
"htm", "html", NULL);
|
"htm", "html", NULL);
|
||||||
gs_FSMimeFallbacks[5] =
|
gs_FSMimeFallbacks[5] =
|
||||||
// must terminate the table with this!
|
// must terminate the table with this!
|
||||||
wxFileTypeInfo();
|
wxFileTypeInfo();
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
virtual void OnExit()
|
virtual void OnExit()
|
||||||
{
|
{
|
||||||
delete gs_FSMimeFallbacks;
|
delete [] gs_FSMimeFallbacks;
|
||||||
wxFileSystem::CleanUpHandlers();
|
wxFileSystem::CleanUpHandlers();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@@ -951,6 +951,10 @@ void * wxDebugAlloc(size_t size, wxChar * fileName, int lineNum, bool isObject,
|
|||||||
// If not in debugging allocation mode, do the normal thing
|
// If not in debugging allocation mode, do the normal thing
|
||||||
// so we don't leave any trace of ourselves in the node list.
|
// so we don't leave any trace of ourselves in the node list.
|
||||||
|
|
||||||
|
#if defined(__VISAGECPP__) && (__IBMCPP__ < 400 || __IBMC__ < 400 )
|
||||||
|
// VA 3.0 still has trouble in here
|
||||||
|
return (void *)malloc(size);
|
||||||
|
#endif
|
||||||
if (!wxDebugContext::GetDebugMode())
|
if (!wxDebugContext::GetDebugMode())
|
||||||
{
|
{
|
||||||
return (void *)malloc(size);
|
return (void *)malloc(size);
|
||||||
@@ -1003,6 +1007,10 @@ void wxDebugFree(void * buf, bool WXUNUSED(isVect) )
|
|||||||
if (!buf)
|
if (!buf)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
#if defined(__VISAGECPP__) && (__IBMCPP__ < 400 || __IBMC__ < 400 )
|
||||||
|
// VA 3.0 still has trouble in here
|
||||||
|
free((char *)buf);
|
||||||
|
#endif
|
||||||
// If not in debugging allocation mode, do the normal thing
|
// If not in debugging allocation mode, do the normal thing
|
||||||
// so we don't leave any trace of ourselves in the node list.
|
// so we don't leave any trace of ourselves in the node list.
|
||||||
if (!wxDebugContext::GetDebugMode())
|
if (!wxDebugContext::GetDebugMode())
|
||||||
|
Reference in New Issue
Block a user