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:
David Webster
2000-11-15 04:58:06 +00:00
parent 79a4c912b5
commit 86b3203fb1
2 changed files with 33 additions and 25 deletions

View File

@@ -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();
} }
}; };

View File

@@ -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())