mirror of
https://github.com/rvtr/ctr_Repair.git
synced 2025-10-31 13:51:08 -04:00
バッファリング済みテキストは一括で書き込むように
git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_Repair@591 385bec56-5757-e545-9c3a-d8741f4650f1
This commit is contained in:
parent
c6f44637c4
commit
45897ab20c
@ -17,6 +17,7 @@
|
||||
#include <string>
|
||||
#include "SDMountManager.h"
|
||||
#include "FileName.h"
|
||||
#include "HeapManager.h"
|
||||
|
||||
namespace common
|
||||
{
|
||||
@ -112,7 +113,7 @@ void SetInsertHandler(void (*func)())
|
||||
s_SdInsertedEventFunc = func;
|
||||
}
|
||||
|
||||
SdLogger::SdLogger() : m_TryActivate(false), m_Permitted(false)
|
||||
SdLogger::SdLogger() : m_BufferSize(0), m_TryActivate(false), m_Permitted(false)
|
||||
{
|
||||
|
||||
}
|
||||
@ -143,15 +144,25 @@ void SdLogger::Print(const char* fmt, ::std::va_list arg)
|
||||
{
|
||||
NN_LOG("SD Write Not Permitted\n");
|
||||
m_Buffer.push_back(std::string(str));
|
||||
m_BufferSize += stringSize * sizeof(char);
|
||||
return;
|
||||
}
|
||||
|
||||
// バッファリング済みならまず吐き出す
|
||||
for(std::vector<std::string>::iterator it = m_Buffer.begin(); it != m_Buffer.end(); it++)
|
||||
if (m_BufferSize != 0)
|
||||
{
|
||||
PrintCore(it->c_str(), it->size());
|
||||
HeapManager heap(m_BufferSize);
|
||||
void* buf = heap.GetAddr();
|
||||
size_t strSize = 0;
|
||||
for (std::vector<std::string>::iterator it = m_Buffer.begin(); it != m_Buffer.end(); it++)
|
||||
{
|
||||
std::memcpy(reinterpret_cast<char*>(buf) + strSize, it->c_str(), it->size() * sizeof(char));
|
||||
strSize += it->size();
|
||||
}
|
||||
PrintCore(reinterpret_cast<char*>(buf), m_BufferSize);
|
||||
m_Buffer.clear();
|
||||
m_BufferSize = 0;
|
||||
}
|
||||
m_Buffer.clear();
|
||||
|
||||
PrintCore(str, stringSize);
|
||||
|
||||
|
||||
@ -48,6 +48,7 @@ private:
|
||||
|
||||
nn::fs::FileOutputStream sd;
|
||||
std::vector<std::string> m_Buffer;
|
||||
size_t m_BufferSize;
|
||||
bool m_TryActivate;
|
||||
bool m_Permitted;
|
||||
NN_PADDING2;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user