aboutsummaryrefslogtreecommitdiffstats
path: root/src/imgui/imgui_memory_editor.h
diff options
context:
space:
mode:
authorLionel Landwerlin <[email protected]>2019-06-18 10:37:11 +0300
committerLionel Landwerlin <[email protected]>2019-06-18 15:34:13 +0000
commit51076eb87ce3d28b37ffa9606d8692c32c287d75 (patch)
tree2e4254bead257ace940cc1830c6ef52d46eaea17 /src/imgui/imgui_memory_editor.h
parent9402970751ca04c4d6edb3a0441a4063a975295c (diff)
imgui: bump imgui memory editor copy
Getting rid of a compiler warning : In file included from ../src/intel/tools/aubinator_viewer.cpp:225: ../src/imgui/imgui_memory_editor.h: In member function ‘void MemoryEditor::DisplayPreviewData(size_t, const u8*, size_t, MemoryEditor::DataType, MemoryEditor::DataFormat, char*, size_t) const’: ../src/imgui/imgui_memory_editor.h:637:16: warning: enumeration value ‘DataType_COUNT’ not handled in switch [-Wswitch] switch (data_type) ^ Signed-off-by: Lionel Landwerlin <[email protected]>
Diffstat (limited to 'src/imgui/imgui_memory_editor.h')
-rw-r--r--src/imgui/imgui_memory_editor.h62
1 files changed, 35 insertions, 27 deletions
diff --git a/src/imgui/imgui_memory_editor.h b/src/imgui/imgui_memory_editor.h
index 5ee6145288c..531bc27326b 100644
--- a/src/imgui/imgui_memory_editor.h
+++ b/src/imgui/imgui_memory_editor.h
@@ -38,6 +38,7 @@
// - v0.31: added OptUpperCaseHex option to select lower/upper casing display [@samhocevar]
// - v0.32: changed signatures to use void* instead of unsigned char*
// - v0.33: added OptShowOptions option to hide all the interactive option setting.
+// - v0.34: binary preview now applies endianess setting [@nicolasnoble]
//
// Todo/Bugs:
// - Arrows are being sent to the InputText() about to disappear which for LeftArrow makes the text cursor appear at position 1 for one frame.
@@ -49,9 +50,10 @@
#ifdef _MSC_VER
#define _PRISizeT "I"
-#define snprintf _snprintf
+#define ImSnprintf _snprintf
#else
#define _PRISizeT "z"
+#define ImSnprintf snprintf
#endif
struct MemoryEditor
@@ -180,7 +182,7 @@ struct MemoryEditor
{
s.PosAsciiStart = s.PosHexEnd + s.GlyphWidth * 1;
if (OptMidColsCount > 0)
- s.PosAsciiStart += ((Cols + OptMidColsCount - 1) / OptMidColsCount) * s.SpacingBetweenMidCols;
+ s.PosAsciiStart += (float)((Cols + OptMidColsCount - 1) / OptMidColsCount) * s.SpacingBetweenMidCols;
s.PosAsciiEnd = s.PosAsciiStart + Cols * s.GlyphWidth;
}
s.WindowWidth = s.PosAsciiEnd + style.ScrollbarSize + style.WindowPadding.x * 2 + s.GlyphWidth;
@@ -287,7 +289,7 @@ struct MemoryEditor
{
float byte_pos_x = s.PosHexStart + s.HexCellWidth * n;
if (OptMidColsCount > 0)
- byte_pos_x += (n / OptMidColsCount) * s.SpacingBetweenMidCols;
+ byte_pos_x += (float)(n / OptMidColsCount) * s.SpacingBetweenMidCols;
ImGui::SameLine(byte_pos_x);
// Draw highlight
@@ -356,7 +358,7 @@ struct MemoryEditor
data_write = data_next = true;
if (data_editing_addr_next != (size_t)-1)
data_write = data_next = false;
- int data_input_value;
+ unsigned int data_input_value = 0;
if (data_write && sscanf(DataInputBuf, "%X", &data_input_value) == 1)
{
if (WriteFn)
@@ -605,14 +607,15 @@ struct MemoryEditor
IM_ASSERT(width <= 64);
size_t out_n = 0;
static char out_buf[64 + 8 + 1];
- for (int j = 0, n = width / 8; j < n; ++j)
+ int n = width / 8;
+ for (int j = n - 1; j >= 0; --j)
{
for (int i = 0; i < 8; ++i)
out_buf[out_n++] = (buf[j] & (1 << (7 - i))) ? '1' : '0';
out_buf[out_n++] = ' ';
}
- out_buf[out_n] = 0;
IM_ASSERT(out_n < IM_ARRAYSIZE(out_buf));
+ out_buf[out_n] = 0;
return out_buf;
}
@@ -629,7 +632,9 @@ struct MemoryEditor
if (data_format == DataFormat_Bin)
{
- snprintf(out_buf, out_buf_size, "%s", FormatBinary(buf, (int)size * 8));
+ uint8_t binbuf[8];
+ EndianessCopy(binbuf, buf, size);
+ ImSnprintf(out_buf, out_buf_size, "%s", FormatBinary(binbuf, (int)size * 8));
return;
}
@@ -640,85 +645,88 @@ struct MemoryEditor
{
int8_t int8 = 0;
EndianessCopy(&int8, buf, size);
- if (data_format == DataFormat_Dec) { snprintf(out_buf, out_buf_size, "%hhd", int8); return; }
- if (data_format == DataFormat_Hex) { snprintf(out_buf, out_buf_size, "0x%02x", int8 & 0xFF); return; }
+ if (data_format == DataFormat_Dec) { ImSnprintf(out_buf, out_buf_size, "%hhd", int8); return; }
+ if (data_format == DataFormat_Hex) { ImSnprintf(out_buf, out_buf_size, "0x%02x", int8 & 0xFF); return; }
break;
}
case DataType_U8:
{
uint8_t uint8 = 0;
EndianessCopy(&uint8, buf, size);
- if (data_format == DataFormat_Dec) { snprintf(out_buf, out_buf_size, "%hhu", uint8); return; }
- if (data_format == DataFormat_Hex) { snprintf(out_buf, out_buf_size, "0x%02x", uint8 & 0XFF); return; }
+ if (data_format == DataFormat_Dec) { ImSnprintf(out_buf, out_buf_size, "%hhu", uint8); return; }
+ if (data_format == DataFormat_Hex) { ImSnprintf(out_buf, out_buf_size, "0x%02x", uint8 & 0XFF); return; }
break;
}
case DataType_S16:
{
int16_t int16 = 0;
EndianessCopy(&int16, buf, size);
- if (data_format == DataFormat_Dec) { snprintf(out_buf, out_buf_size, "%hd", int16); return; }
- if (data_format == DataFormat_Hex) { snprintf(out_buf, out_buf_size, "0x%04x", int16 & 0xFFFF); return; }
+ if (data_format == DataFormat_Dec) { ImSnprintf(out_buf, out_buf_size, "%hd", int16); return; }
+ if (data_format == DataFormat_Hex) { ImSnprintf(out_buf, out_buf_size, "0x%04x", int16 & 0xFFFF); return; }
break;
}
case DataType_U16:
{
uint16_t uint16 = 0;
EndianessCopy(&uint16, buf, size);
- if (data_format == DataFormat_Dec) { snprintf(out_buf, out_buf_size, "%hu", uint16); return; }
- if (data_format == DataFormat_Hex) { snprintf(out_buf, out_buf_size, "0x%04x", uint16 & 0xFFFF); return; }
+ if (data_format == DataFormat_Dec) { ImSnprintf(out_buf, out_buf_size, "%hu", uint16); return; }
+ if (data_format == DataFormat_Hex) { ImSnprintf(out_buf, out_buf_size, "0x%04x", uint16 & 0xFFFF); return; }
break;
}
case DataType_S32:
{
int32_t int32 = 0;
EndianessCopy(&int32, buf, size);
- if (data_format == DataFormat_Dec) { snprintf(out_buf, out_buf_size, "%d", int32); return; }
- if (data_format == DataFormat_Hex) { snprintf(out_buf, out_buf_size, "0x%08x", int32); return; }
+ if (data_format == DataFormat_Dec) { ImSnprintf(out_buf, out_buf_size, "%d", int32); return; }
+ if (data_format == DataFormat_Hex) { ImSnprintf(out_buf, out_buf_size, "0x%08x", int32); return; }
break;
}
case DataType_U32:
{
uint32_t uint32 = 0;
EndianessCopy(&uint32, buf, size);
- if (data_format == DataFormat_Dec) { snprintf(out_buf, out_buf_size, "%u", uint32); return; }
- if (data_format == DataFormat_Hex) { snprintf(out_buf, out_buf_size, "0x%08x", uint32); return; }
+ if (data_format == DataFormat_Dec) { ImSnprintf(out_buf, out_buf_size, "%u", uint32); return; }
+ if (data_format == DataFormat_Hex) { ImSnprintf(out_buf, out_buf_size, "0x%08x", uint32); return; }
break;
}
case DataType_S64:
{
int64_t int64 = 0;
EndianessCopy(&int64, buf, size);
- if (data_format == DataFormat_Dec) { snprintf(out_buf, out_buf_size, "%lld", (long long)int64); return; }
- if (data_format == DataFormat_Hex) { snprintf(out_buf, out_buf_size, "0x%016llx", (long long)int64); return; }
+ if (data_format == DataFormat_Dec) { ImSnprintf(out_buf, out_buf_size, "%lld", (long long)int64); return; }
+ if (data_format == DataFormat_Hex) { ImSnprintf(out_buf, out_buf_size, "0x%016llx", (long long)int64); return; }
break;
}
case DataType_U64:
{
uint64_t uint64 = 0;
EndianessCopy(&uint64, buf, size);
- if (data_format == DataFormat_Dec) { snprintf(out_buf, out_buf_size, "%llu", (long long)uint64); return; }
- if (data_format == DataFormat_Hex) { snprintf(out_buf, out_buf_size, "0x%016llx", (long long)uint64); return; }
+ if (data_format == DataFormat_Dec) { ImSnprintf(out_buf, out_buf_size, "%llu", (long long)uint64); return; }
+ if (data_format == DataFormat_Hex) { ImSnprintf(out_buf, out_buf_size, "0x%016llx", (long long)uint64); return; }
break;
}
case DataType_Float:
{
float float32 = 0.0f;
EndianessCopy(&float32, buf, size);
- if (data_format == DataFormat_Dec) { snprintf(out_buf, out_buf_size, "%f", float32); return; }
- if (data_format == DataFormat_Hex) { snprintf(out_buf, out_buf_size, "%a", float32); return; }
+ if (data_format == DataFormat_Dec) { ImSnprintf(out_buf, out_buf_size, "%f", float32); return; }
+ if (data_format == DataFormat_Hex) { ImSnprintf(out_buf, out_buf_size, "%a", float32); return; }
break;
}
case DataType_Double:
{
double float64 = 0.0;
EndianessCopy(&float64, buf, size);
- if (data_format == DataFormat_Dec) { snprintf(out_buf, out_buf_size, "%f", float64); return; }
- if (data_format == DataFormat_Hex) { snprintf(out_buf, out_buf_size, "%a", float64); return; }
+ if (data_format == DataFormat_Dec) { ImSnprintf(out_buf, out_buf_size, "%f", float64); return; }
+ if (data_format == DataFormat_Hex) { ImSnprintf(out_buf, out_buf_size, "%a", float64); return; }
break;
}
+ case DataType_COUNT:
+ break;
} // Switch
IM_ASSERT(0); // Shouldn't reach
}
};
#undef _PRISizeT
+#undef ImSnprintf