fixup simple type conversions where possible

This commit is contained in:
Alexander Laties 2016-04-25 16:10:03 -04:00
parent c549c36076
commit 0a31e373f1
14 changed files with 55 additions and 45 deletions

View File

@ -36,12 +36,17 @@ std::vector<u8> PipeRead(DspPipe pipe_number, u32 length) {
return {}; return {};
} }
if (length > UINT16_MAX) { // Can only read at most UINT16_MAX from the pipe
LOG_ERROR(Audio_DSP, "length of %u greater than max of %u", length, UINT16_MAX);
return {};
}
std::vector<u8>& data = pipe_data[pipe_index]; std::vector<u8>& data = pipe_data[pipe_index];
if (length > data.size()) { if (length > data.size()) {
LOG_WARNING(Audio_DSP, "pipe_number = %zu is out of data, application requested read of %u but %zu remain", LOG_WARNING(Audio_DSP, "pipe_number = %zu is out of data, application requested read of %u but %zu remain",
pipe_index, length, data.size()); pipe_index, length, data.size());
length = data.size(); length = static_cast<u32>(data.size());
} }
if (length == 0) if (length == 0)
@ -94,7 +99,7 @@ static void AudioPipeWriteStructAddresses() {
}; };
// Begin with a u16 denoting the number of structs. // Begin with a u16 denoting the number of structs.
WriteU16(DspPipe::Audio, struct_addresses.size()); WriteU16(DspPipe::Audio, static_cast<u16>(struct_addresses.size()));
// Then write the struct addresses. // Then write the struct addresses.
for (u16 addr : struct_addresses) { for (u16 addr : struct_addresses) {
WriteU16(DspPipe::Audio, addr); WriteU16(DspPipe::Audio, addr);

View File

@ -24,10 +24,14 @@ enum class DspPipe {
constexpr size_t NUM_DSP_PIPE = 8; constexpr size_t NUM_DSP_PIPE = 8;
/** /**
* Read a DSP pipe. * Reads `length` bytes from the DSP pipe identified with `pipe_number`.
* @param pipe_number The Pipe ID * @note Can read up to the maximum value of a u16 in bytes (65,535).
* @param length How much data to request. * @note IF an error is encoutered with either an invalid `pipe_number` or `length` value, an empty vector will be returned.
* @return The data read from the pipe. The size of this vector can be less than the length requested. * @note IF `length` is set to 0, an empty vector will be returned.
* @note IF `length` is greater than the amount of data available, this function will only read the available amount.
* @param pipe_number a `DspPipe`
* @param length the number of bytes to read. The max is 65,535 (max of u16).
* @returns a vector of bytes from the specified pipe. On error, will be empty.
*/ */
std::vector<u8> PipeRead(DspPipe pipe_number, u32 length); std::vector<u8> PipeRead(DspPipe pipe_number, u32 length);

View File

@ -85,7 +85,7 @@ void Config::ReadValues() {
// Debugging // Debugging
Settings::values.use_gdbstub = sdl2_config->GetBoolean("Debugging", "use_gdbstub", false); Settings::values.use_gdbstub = sdl2_config->GetBoolean("Debugging", "use_gdbstub", false);
Settings::values.gdbstub_port = sdl2_config->GetInteger("Debugging", "gdbstub_port", 24689); Settings::values.gdbstub_port = static_cast<u16>(sdl2_config->GetInteger("Debugging", "gdbstub_port", 24689));
} }
void Config::Reload() { void Config::Reload() {

View File

@ -515,7 +515,7 @@ void GraphicsVertexShaderWidget::Reload(bool replace_vertex_data, void* vertex_d
} }
// Initialize debug info text for current cycle count // Initialize debug info text for current cycle count
cycle_index->setMaximum(debug_data.records.size() - 1); cycle_index->setMaximum(static_cast<int>(debug_data.records.size() - 1));
OnCycleIndexChanged(cycle_index->value()); OnCycleIndexChanged(cycle_index->value());
model->endResetModel(); model->endResetModel();

View File

@ -19,7 +19,7 @@ QString ReadableByteSize(qulonglong size) {
static const std::array<const char*, 6> units = { "B", "KiB", "MiB", "GiB", "TiB", "PiB" }; static const std::array<const char*, 6> units = { "B", "KiB", "MiB", "GiB", "TiB", "PiB" };
if (size == 0) if (size == 0)
return "0"; return "0";
int digit_groups = std::min<int>((int)(std::log10(size) / std::log10(1024)), units.size()); int digit_groups = std::min<int>(static_cast<int>(std::log10(size) / std::log10(1024)), static_cast<int>(units.size()));
return QString("%L1 %2").arg(size / std::pow(1024, digit_groups), 0, 'f', 1) return QString("%L1 %2").arg(size / std::pow(1024, digit_groups), 0, 'f', 1)
.arg(units[digit_groups]); .arg(units[digit_groups]);
} }

View File

@ -374,7 +374,7 @@ static void SendReply(const char* reply) {
memset(command_buffer, 0, sizeof(command_buffer)); memset(command_buffer, 0, sizeof(command_buffer));
command_length = strlen(reply); command_length = static_cast<u32>(strlen(reply));
if (command_length + 4 > sizeof(command_buffer)) { if (command_length + 4 > sizeof(command_buffer)) {
LOG_ERROR(Debug_GDBStub, "command_buffer overflow in SendReply"); LOG_ERROR(Debug_GDBStub, "command_buffer overflow in SendReply");
return; return;
@ -515,7 +515,7 @@ static bool IsDataAvailable() {
return false; return false;
} }
return FD_ISSET(gdbserver_socket, &fd_socket); return FD_ISSET(gdbserver_socket, &fd_socket) != 0;
} }
/// Send requested register to gdb client. /// Send requested register to gdb client.
@ -633,10 +633,10 @@ static void ReadMemory() {
auto start_offset = command_buffer+1; auto start_offset = command_buffer+1;
auto addr_pos = std::find(start_offset, command_buffer+command_length, ','); auto addr_pos = std::find(start_offset, command_buffer+command_length, ',');
PAddr addr = HexToInt(start_offset, addr_pos - start_offset); PAddr addr = HexToInt(start_offset, static_cast<u32>(addr_pos - start_offset));
start_offset = addr_pos+1; start_offset = addr_pos+1;
u32 len = HexToInt(start_offset, (command_buffer + command_length) - start_offset); u32 len = HexToInt(start_offset, static_cast<u32>((command_buffer + command_length) - start_offset));
LOG_DEBUG(Debug_GDBStub, "gdb: addr: %08x len: %08x\n", addr, len); LOG_DEBUG(Debug_GDBStub, "gdb: addr: %08x len: %08x\n", addr, len);
@ -658,11 +658,11 @@ static void ReadMemory() {
static void WriteMemory() { static void WriteMemory() {
auto start_offset = command_buffer+1; auto start_offset = command_buffer+1;
auto addr_pos = std::find(start_offset, command_buffer+command_length, ','); auto addr_pos = std::find(start_offset, command_buffer+command_length, ',');
PAddr addr = HexToInt(start_offset, addr_pos - start_offset); PAddr addr = HexToInt(start_offset, static_cast<u32>(addr_pos - start_offset));
start_offset = addr_pos+1; start_offset = addr_pos+1;
auto len_pos = std::find(start_offset, command_buffer+command_length, ':'); auto len_pos = std::find(start_offset, command_buffer+command_length, ':');
u32 len = HexToInt(start_offset, len_pos - start_offset); u32 len = HexToInt(start_offset, static_cast<u32>(len_pos - start_offset));
u8* dst = Memory::GetPointer(addr); u8* dst = Memory::GetPointer(addr);
if (!dst) { if (!dst) {
@ -752,10 +752,10 @@ static void AddBreakpoint() {
auto start_offset = command_buffer+3; auto start_offset = command_buffer+3;
auto addr_pos = std::find(start_offset, command_buffer+command_length, ','); auto addr_pos = std::find(start_offset, command_buffer+command_length, ',');
PAddr addr = HexToInt(start_offset, addr_pos - start_offset); PAddr addr = HexToInt(start_offset, static_cast<u32>(addr_pos - start_offset));
start_offset = addr_pos+1; start_offset = addr_pos+1;
u32 len = HexToInt(start_offset, (command_buffer + command_length) - start_offset); u32 len = HexToInt(start_offset, static_cast<u32>((command_buffer + command_length) - start_offset));
if (type == BreakpointType::Access) { if (type == BreakpointType::Access) {
// Access is made up of Read and Write types, so add both breakpoints // Access is made up of Read and Write types, so add both breakpoints
@ -800,10 +800,10 @@ static void RemoveBreakpoint() {
auto start_offset = command_buffer+3; auto start_offset = command_buffer+3;
auto addr_pos = std::find(start_offset, command_buffer+command_length, ','); auto addr_pos = std::find(start_offset, command_buffer+command_length, ',');
PAddr addr = HexToInt(start_offset, addr_pos - start_offset); PAddr addr = HexToInt(start_offset, static_cast<u32>(addr_pos - start_offset));
start_offset = addr_pos+1; start_offset = addr_pos+1;
u32 len = HexToInt(start_offset, (command_buffer + command_length) - start_offset); u32 len = HexToInt(start_offset, static_cast<u32>((command_buffer + command_length) - start_offset));
if (type == BreakpointType::Access) { if (type == BreakpointType::Access) {
// Access is made up of Read and Write types, so add both breakpoints // Access is made up of Read and Write types, so add both breakpoints

View File

@ -288,7 +288,7 @@ static void WriteProcessPipe(Service::Interface* self) {
ASSERT_MSG(Memory::GetPointer(buffer) != nullptr, "Invalid Buffer: pipe=%u, size=0x%X, buffer=0x%08X", pipe_index, size, buffer); ASSERT_MSG(Memory::GetPointer(buffer) != nullptr, "Invalid Buffer: pipe=%u, size=0x%X, buffer=0x%08X", pipe_index, size, buffer);
std::vector<u8> message(size); std::vector<u8> message(size);
for (size_t i = 0; i < size; i++) { for (u32 i = 0; i < size; i++) {
message[i] = Memory::Read8(buffer + i); message[i] = Memory::Read8(buffer + i);
} }
@ -403,7 +403,7 @@ static void GetPipeReadableSize(Service::Interface* self) {
cmd_buff[0] = IPC::MakeHeader(0xF, 2, 0); cmd_buff[0] = IPC::MakeHeader(0xF, 2, 0);
cmd_buff[1] = RESULT_SUCCESS.raw; // No error cmd_buff[1] = RESULT_SUCCESS.raw; // No error
cmd_buff[2] = DSP::HLE::GetPipeReadableSize(pipe); cmd_buff[2] = static_cast<u32>(DSP::HLE::GetPipeReadableSize(pipe));
LOG_DEBUG(Service_DSP, "pipe=%u, unknown=0x%08X, return cmd_buff[2]=0x%08X", pipe_index, unknown, cmd_buff[2]); LOG_DEBUG(Service_DSP, "pipe=%u, unknown=0x%08X, return cmd_buff[2]=0x%08X", pipe_index, unknown, cmd_buff[2]);
} }

View File

@ -188,10 +188,10 @@ inline void Write(u32 addr, const T data) {
u32 output_gap = config.texture_copy.output_gap * 16; u32 output_gap = config.texture_copy.output_gap * 16;
size_t contiguous_input_size = config.texture_copy.size / input_width * (input_width + input_gap); size_t contiguous_input_size = config.texture_copy.size / input_width * (input_width + input_gap);
Memory::RasterizerFlushRegion(config.GetPhysicalInputAddress(), contiguous_input_size); Memory::RasterizerFlushRegion(config.GetPhysicalInputAddress(), static_cast<u32>(contiguous_input_size));
size_t contiguous_output_size = config.texture_copy.size / output_width * (output_width + output_gap); size_t contiguous_output_size = config.texture_copy.size / output_width * (output_width + output_gap);
Memory::RasterizerFlushAndInvalidateRegion(config.GetPhysicalOutputAddress(), contiguous_output_size); Memory::RasterizerFlushAndInvalidateRegion(config.GetPhysicalOutputAddress(), static_cast<u32>(contiguous_output_size));
u32 remaining_size = config.texture_copy.size; u32 remaining_size = config.texture_copy.size;
u32 remaining_input = input_width; u32 remaining_input = input_width;

View File

@ -178,11 +178,11 @@ static THREEDSX_Error Load3DSXFile(FileUtil::IOFile& file, u32 base_addr, Shared
for (unsigned current_inprogress = 0; current_inprogress < remaining && pos < end_pos; current_inprogress++) { for (unsigned current_inprogress = 0; current_inprogress < remaining && pos < end_pos; current_inprogress++) {
const auto& table = reloc_table[current_inprogress]; const auto& table = reloc_table[current_inprogress];
LOG_TRACE(Loader, "(t=%d,skip=%u,patch=%u)", current_segment_reloc_table, LOG_TRACE(Loader, "(t=%d,skip=%u,patch=%u)", current_segment_reloc_table,
(u32)table.skip, (u32)table.patch); static_cast<u32>(table.skip), static_cast<u32>(table.patch));
pos += table.skip; pos += table.skip;
s32 num_patches = table.patch; s32 num_patches = table.patch;
while (0 < num_patches && pos < end_pos) { while (0 < num_patches && pos < end_pos) {
u32 in_addr = (u8*)pos - program_image.data(); u32 in_addr = static_cast<u32>(reinterpret_cast<u8*>(pos) - program_image.data());
u32 addr = TranslateAddr(*pos, &loadinfo, offsets); u32 addr = TranslateAddr(*pos, &loadinfo, offsets);
LOG_TRACE(Loader, "Patching %08X <-- rel(%08X,%d) (%08X)", LOG_TRACE(Loader, "Patching %08X <-- rel(%08X,%d) (%08X)",
base_addr + in_addr, addr, current_segment_reloc_table, *pos); base_addr + in_addr, addr, current_segment_reloc_table, *pos);
@ -284,7 +284,7 @@ ResultStatus AppLoader_THREEDSX::ReadRomFS(std::shared_ptr<FileUtil::IOFile>& ro
// Check if the 3DSX has a RomFS... // Check if the 3DSX has a RomFS...
if (hdr.fs_offset != 0) { if (hdr.fs_offset != 0) {
u32 romfs_offset = hdr.fs_offset; u32 romfs_offset = hdr.fs_offset;
u32 romfs_size = file.GetSize() - hdr.fs_offset; u32 romfs_size = static_cast<u32>(file.GetSize()) - hdr.fs_offset;
LOG_DEBUG(Loader, "RomFS offset: 0x%08X", romfs_offset); LOG_DEBUG(Loader, "RomFS offset: 0x%08X", romfs_offset);
LOG_DEBUG(Loader, "RomFS size: 0x%08X", romfs_size); LOG_DEBUG(Loader, "RomFS size: 0x%08X", romfs_size);

View File

@ -26,17 +26,17 @@ void Recorder::Finish(const std::string& filename) {
// Calculate file offsets // Calculate file offsets
auto& initial = header.initial_state_offsets; auto& initial = header.initial_state_offsets;
initial.gpu_registers_size = initial_state.gpu_registers.size(); initial.gpu_registers_size = static_cast<u32>(initial_state.gpu_registers.size());
initial.lcd_registers_size = initial_state.lcd_registers.size(); initial.lcd_registers_size = static_cast<u32>(initial_state.lcd_registers.size());
initial.pica_registers_size = initial_state.pica_registers.size(); initial.pica_registers_size = static_cast<u32>(initial_state.pica_registers.size());
initial.default_attributes_size = initial_state.default_attributes.size(); initial.default_attributes_size = static_cast<u32>(initial_state.default_attributes.size());
initial.vs_program_binary_size = initial_state.vs_program_binary.size(); initial.vs_program_binary_size = static_cast<u32>(initial_state.vs_program_binary.size());
initial.vs_swizzle_data_size = initial_state.vs_swizzle_data.size(); initial.vs_swizzle_data_size = static_cast<u32>(initial_state.vs_swizzle_data.size());
initial.vs_float_uniforms_size = initial_state.vs_float_uniforms.size(); initial.vs_float_uniforms_size = static_cast<u32>(initial_state.vs_float_uniforms.size());
initial.gs_program_binary_size = initial_state.gs_program_binary.size(); initial.gs_program_binary_size = static_cast<u32>(initial_state.gs_program_binary.size());
initial.gs_swizzle_data_size = initial_state.gs_swizzle_data.size(); initial.gs_swizzle_data_size = static_cast<u32>(initial_state.gs_swizzle_data.size());
initial.gs_float_uniforms_size = initial_state.gs_float_uniforms.size(); initial.gs_float_uniforms_size = static_cast<u32>(initial_state.gs_float_uniforms.size());
header.stream_size = stream.size(); header.stream_size = static_cast<u32>(stream.size());
initial.gpu_registers = sizeof(header); initial.gpu_registers = sizeof(header);
initial.lcd_registers = initial.gpu_registers + initial.gpu_registers_size * sizeof(u32); initial.lcd_registers = initial.gpu_registers + initial.gpu_registers_size * sizeof(u32);
@ -68,7 +68,7 @@ void Recorder::Finish(const std::string& filename) {
DEBUG_ASSERT(stream_element.extra_data.size() == 0); DEBUG_ASSERT(stream_element.extra_data.size() == 0);
break; break;
} }
header.stream_offset += stream_element.extra_data.size(); header.stream_offset += static_cast<u32>(stream_element.extra_data.size());
} }
try { try {

View File

@ -208,11 +208,12 @@ void DumpShader(const std::string& filename, const Regs::ShaderConfig& config, c
// TODO: Reduce the amount of binary code written to relevant portions // TODO: Reduce the amount of binary code written to relevant portions
dvlp.binary_offset = write_offset - dvlp_offset; dvlp.binary_offset = write_offset - dvlp_offset;
dvlp.binary_size_words = setup.program_code.size(); dvlp.binary_size_words = static_cast<uint32_t>(setup.program_code.size());
QueueForWriting(reinterpret_cast<const u8*>(setup.program_code.data()), setup.program_code.size() * sizeof(u32)); QueueForWriting(reinterpret_cast<const u8*>(setup.program_code.data()),
static_cast<u32>(setup.program_code.size()) * sizeof(u32));
dvlp.swizzle_info_offset = write_offset - dvlp_offset; dvlp.swizzle_info_offset = write_offset - dvlp_offset;
dvlp.swizzle_info_num_entries = setup.swizzle_data.size(); dvlp.swizzle_info_num_entries = static_cast<uint32_t>(setup.swizzle_data.size());
u32 dummy = 0; u32 dummy = 0;
for (unsigned int i = 0; i < setup.swizzle_data.size(); ++i) { for (unsigned int i = 0; i < setup.swizzle_data.size(); ++i) {
QueueForWriting(reinterpret_cast<const u8*>(&setup.swizzle_data[i]), sizeof(setup.swizzle_data[i])); QueueForWriting(reinterpret_cast<const u8*>(&setup.swizzle_data[i]), sizeof(setup.swizzle_data[i]));
@ -264,7 +265,7 @@ void DumpShader(const std::string& filename, const Regs::ShaderConfig& config, c
constant_table.emplace_back(constant); constant_table.emplace_back(constant);
} }
dvle.constant_table_offset = write_offset - dvlb.dvle_offset; dvle.constant_table_offset = write_offset - dvlb.dvle_offset;
dvle.constant_table_size = constant_table.size(); dvle.constant_table_size = static_cast<uint32_t>(constant_table.size());
for (const auto& constant : constant_table) { for (const auto& constant : constant_table) {
QueueForWriting(reinterpret_cast<const u8*>(&constant), sizeof(constant)); QueueForWriting(reinterpret_cast<const u8*>(&constant), sizeof(constant));
} }

View File

@ -56,7 +56,7 @@ struct State {
// Used to buffer partial vertices for immediate-mode rendering. // Used to buffer partial vertices for immediate-mode rendering.
Shader::InputVertex input_vertex; Shader::InputVertex input_vertex;
// Index of the next attribute to be loaded into `input_vertex`. // Index of the next attribute to be loaded into `input_vertex`.
int current_attribute = 0; u32 current_attribute = 0;
} immediate; } immediate;
// This is constructed with a dummy triangle topology // This is constructed with a dummy triangle topology

View File

@ -93,7 +93,7 @@ RasterizerOpenGL::RasterizerOpenGL() : shader_dirty(true) {
state.Apply(); state.Apply();
for (size_t i = 0; i < lighting_luts.size(); ++i) { for (size_t i = 0; i < lighting_luts.size(); ++i) {
glActiveTexture(GL_TEXTURE3 + i); glActiveTexture(static_cast<GLenum>(GL_TEXTURE3 + i));
glTexImage1D(GL_TEXTURE_1D, 0, GL_RGBA32F, 256, 0, GL_RGBA, GL_FLOAT, nullptr); glTexImage1D(GL_TEXTURE_1D, 0, GL_RGBA32F, 256, 0, GL_RGBA, GL_FLOAT, nullptr);
glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);

View File

@ -192,7 +192,7 @@ void RendererOpenGL::LoadFBToScreenInfo(const GPU::Regs::FramebufferConfig& fram
// only allows rows to have a memory alignement of 4. // only allows rows to have a memory alignement of 4.
ASSERT(pixel_stride % 4 == 0); ASSERT(pixel_stride % 4 == 0);
if (!Rasterizer()->AccelerateDisplay(framebuffer, framebuffer_addr, pixel_stride, screen_info)) { if (!Rasterizer()->AccelerateDisplay(framebuffer, framebuffer_addr, static_cast<u32>(pixel_stride), screen_info)) {
// Reset the screen info's display texture to its own permanent texture // Reset the screen info's display texture to its own permanent texture
screen_info.display_texture = screen_info.texture.resource.handle; screen_info.display_texture = screen_info.texture.resource.handle;
screen_info.display_texcoords = MathUtil::Rectangle<float>(0.f, 0.f, 1.f, 1.f); screen_info.display_texcoords = MathUtil::Rectangle<float>(0.f, 0.f, 1.f, 1.f);