mirror of
https://github.com/Fledge68/WiiFlow_Lite.git
synced 2024-12-24 19:01:56 +01:00
Use the memory manager for downloads
This commit is contained in:
parent
1ce62ffb75
commit
a85d33ffd7
@ -33,12 +33,12 @@ int CMenu::_downloadCheatFileAsync()
|
|||||||
m_thrdMessageAdded = true;
|
m_thrdMessageAdded = true;
|
||||||
update_pThread(1);// its downloaded
|
update_pThread(1);// its downloaded
|
||||||
fsop_WriteFile(fmt("%s/%s.txt", m_txtCheatDir.c_str(), id), file.data, file.size);
|
fsop_WriteFile(fmt("%s/%s.txt", m_txtCheatDir.c_str(), id), file.data, file.size);
|
||||||
free(file.data);
|
MEM2_free(file.data);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
if(file.size > 0)// received a 301/302 redirect instead of a 404?
|
if(file.size > 0)// received a 301/302 redirect instead of a 404?
|
||||||
{
|
{
|
||||||
free(file.data);
|
MEM2_free(file.data);
|
||||||
return -4;// the file doesn't exist on the server
|
return -4;// the file doesn't exist on the server
|
||||||
}
|
}
|
||||||
return -3;// download failed
|
return -3;// download failed
|
||||||
|
@ -1199,8 +1199,7 @@ int CMenu::_coverDownloader()
|
|||||||
m_thrdMessage = wfmt(_fmt("dlmsg4", L"Saving %s"), path);
|
m_thrdMessage = wfmt(_fmt("dlmsg4", L"Saving %s"), path);
|
||||||
m_thrdMessageAdded = true;
|
m_thrdMessageAdded = true;
|
||||||
fsop_WriteFile(path, file.data, file.size);
|
fsop_WriteFile(path, file.data, file.size);
|
||||||
if(file.size > 0)
|
MEM2_free(file.data);
|
||||||
free(file.data);
|
|
||||||
|
|
||||||
/* make cover cache file (wfc) */
|
/* make cover cache file (wfc) */
|
||||||
update_pThread(1);
|
update_pThread(1);
|
||||||
@ -1338,8 +1337,7 @@ int CMenu::_coverDownloader()
|
|||||||
m_thrdMessage = wfmt(_fmt("dlmsg4", L"Saving %s"), path);
|
m_thrdMessage = wfmt(_fmt("dlmsg4", L"Saving %s"), path);
|
||||||
m_thrdMessageAdded = true;
|
m_thrdMessageAdded = true;
|
||||||
fsop_WriteFile(path, file.data, file.size);
|
fsop_WriteFile(path, file.data, file.size);
|
||||||
if(file.size > 0)
|
MEM2_free(file.data);
|
||||||
free(file.data);
|
|
||||||
|
|
||||||
/* make cover cache file (wfc) */
|
/* make cover cache file (wfc) */
|
||||||
update_pThread(1);
|
update_pThread(1);
|
||||||
@ -1471,8 +1469,7 @@ int CMenu::_coverDownloader()
|
|||||||
m_thrdMessage = wfmt(_fmt("dlmsg4", L"Saving %s"), path);
|
m_thrdMessage = wfmt(_fmt("dlmsg4", L"Saving %s"), path);
|
||||||
m_thrdMessageAdded = true;
|
m_thrdMessageAdded = true;
|
||||||
fsop_WriteFile(path, file.data, file.size);
|
fsop_WriteFile(path, file.data, file.size);
|
||||||
if(file.size > 0)
|
MEM2_free(file.data);
|
||||||
free(file.data);
|
|
||||||
|
|
||||||
/* make cover cache file (wfc) */
|
/* make cover cache file (wfc) */
|
||||||
update_pThread(1);
|
update_pThread(1);
|
||||||
@ -1608,8 +1605,7 @@ int CMenu::_coverDownloader()
|
|||||||
m_thrdMessage = wfmt(_fmt("dlmsg4", L"Saving %s"), path);
|
m_thrdMessage = wfmt(_fmt("dlmsg4", L"Saving %s"), path);
|
||||||
m_thrdMessageAdded = true;
|
m_thrdMessageAdded = true;
|
||||||
fsop_WriteFile(path, file.data, file.size);
|
fsop_WriteFile(path, file.data, file.size);
|
||||||
if(file.size > 0)
|
MEM2_free(file.data);
|
||||||
free(file.data);
|
|
||||||
|
|
||||||
/* make wfc */
|
/* make wfc */
|
||||||
update_pThread(1);
|
update_pThread(1);
|
||||||
@ -1673,8 +1669,7 @@ int CMenu::_gametdbDownloaderAsync()
|
|||||||
m_thrdMessage = wfmt(_fmt("dlmsg4", L"Saving %s"), "wiitdb.zip");
|
m_thrdMessage = wfmt(_fmt("dlmsg4", L"Saving %s"), "wiitdb.zip");
|
||||||
m_thrdMessageAdded = true;
|
m_thrdMessageAdded = true;
|
||||||
res = fsop_WriteFile(zippath, file.data, file.size);
|
res = fsop_WriteFile(zippath, file.data, file.size);
|
||||||
if(file.size > 0)
|
MEM2_free(file.data);
|
||||||
free(file.data);
|
|
||||||
}
|
}
|
||||||
if(res == false)
|
if(res == false)
|
||||||
{
|
{
|
||||||
@ -1788,7 +1783,7 @@ int CMenu::_bannerDownloader()
|
|||||||
if(file.size < 0x5000)
|
if(file.size < 0x5000)
|
||||||
{
|
{
|
||||||
if(file.size > 0)
|
if(file.size > 0)
|
||||||
free(file.data); // More than 0 bytes and less than 50kb
|
MEM2_free(file.data); // More than 0 bytes and less than 50kb
|
||||||
downloadfile(banner_url_id3, &file);
|
downloadfile(banner_url_id3, &file);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1799,7 +1794,7 @@ int CMenu::_bannerDownloader()
|
|||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
if(file.size > 0)
|
if(file.size > 0)
|
||||||
free(file.data);
|
MEM2_free(file.data);
|
||||||
update_pThread(1);
|
update_pThread(1);
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
#include "https.h"
|
#include "https.h"
|
||||||
#include "gecko/gecko.hpp"
|
#include "gecko/gecko.hpp"
|
||||||
#include "picohttpparser.h"
|
#include "picohttpparser.h"
|
||||||
|
#include "memory/mem2.hpp"
|
||||||
|
|
||||||
u8 loop;
|
u8 loop;
|
||||||
|
|
||||||
@ -99,7 +100,7 @@ void read_chunked(HTTP_INFO *httpinfo, struct download *buffer, size_t start_pos
|
|||||||
gprintf("Increased buffer size\n");
|
gprintf("Increased buffer size\n");
|
||||||
#endif
|
#endif
|
||||||
capacity *= 2;
|
capacity *= 2;
|
||||||
buffer->data = realloc(buffer->data, capacity);
|
buffer->data = MEM2_realloc(buffer->data, capacity);
|
||||||
}
|
}
|
||||||
while ((rret = https_read(httpinfo, &buffer->data[start_pos], capacity - start_pos)) == -1 && errno == EINTR)
|
while ((rret = https_read(httpinfo, &buffer->data[start_pos], capacity - start_pos)) == -1 && errno == EINTR)
|
||||||
;
|
;
|
||||||
@ -122,7 +123,7 @@ void read_chunked(HTTP_INFO *httpinfo, struct download *buffer, size_t start_pos
|
|||||||
start_pos += rsize;
|
start_pos += rsize;
|
||||||
} while (pret == -2);
|
} while (pret == -2);
|
||||||
buffer->size = start_pos;
|
buffer->size = start_pos;
|
||||||
buffer->data = realloc(buffer->data, buffer->size);
|
buffer->data = MEM2_realloc(buffer->data, buffer->size);
|
||||||
}
|
}
|
||||||
|
|
||||||
void read_all(HTTP_INFO *httpinfo, struct download *buffer, size_t start_pos)
|
void read_all(HTTP_INFO *httpinfo, struct download *buffer, size_t start_pos)
|
||||||
@ -140,7 +141,7 @@ void read_all(HTTP_INFO *httpinfo, struct download *buffer, size_t start_pos)
|
|||||||
gprintf("Increased buffer size\n");
|
gprintf("Increased buffer size\n");
|
||||||
#endif
|
#endif
|
||||||
capacity *= 2;
|
capacity *= 2;
|
||||||
buffer->data = realloc(buffer->data, capacity);
|
buffer->data = MEM2_realloc(buffer->data, capacity);
|
||||||
}
|
}
|
||||||
while ((ret = https_read(httpinfo, &buffer->data[start_pos], capacity - start_pos)) == -1 && errno == EINTR)
|
while ((ret = https_read(httpinfo, &buffer->data[start_pos], capacity - start_pos)) == -1 && errno == EINTR)
|
||||||
;
|
;
|
||||||
@ -150,7 +151,7 @@ void read_all(HTTP_INFO *httpinfo, struct download *buffer, size_t start_pos)
|
|||||||
start_pos += ret;
|
start_pos += ret;
|
||||||
};
|
};
|
||||||
buffer->size = start_pos;
|
buffer->size = start_pos;
|
||||||
buffer->data = realloc(buffer->data, buffer->size);
|
buffer->data = MEM2_realloc(buffer->data, buffer->size);
|
||||||
}
|
}
|
||||||
|
|
||||||
int connect(char *host, u16 port)
|
int connect(char *host, u16 port)
|
||||||
@ -420,7 +421,7 @@ void downloadfile(const char *url, struct download *buffer)
|
|||||||
// We got what we wanted
|
// We got what we wanted
|
||||||
if (status == 200)
|
if (status == 200)
|
||||||
{
|
{
|
||||||
buffer->data = malloc(4096);
|
buffer->data = MEM2_alloc(4096);
|
||||||
buffer->size = 4096;
|
buffer->size = 4096;
|
||||||
memcpy(buffer->data, &response[pret], buflen - pret);
|
memcpy(buffer->data, &response[pret], buflen - pret);
|
||||||
// Determine how to read the data
|
// Determine how to read the data
|
||||||
|
Loading…
Reference in New Issue
Block a user