boundary check on String8 in debug mode
This commit is contained in:
parent
d76dd022fd
commit
04680e281c
2 changed files with 6 additions and 5 deletions
|
@ -12,6 +12,7 @@ String8 push_str8fv(Arena *arena, const char *fmt, va_list args)
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal
|
||||||
String8 push_str8f(Arena *arena, const char *fmt, ...)
|
String8 push_str8f(Arena *arena, const char *fmt, ...)
|
||||||
{
|
{
|
||||||
va_list args;
|
va_list args;
|
||||||
|
@ -21,6 +22,7 @@ String8 push_str8f(Arena *arena, const char *fmt, ...)
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal
|
||||||
String8 str8_from_c(const char *str)
|
String8 str8_from_c(const char *str)
|
||||||
{
|
{
|
||||||
u64 size = strlen(str);
|
u64 size = strlen(str);
|
||||||
|
|
|
@ -3,15 +3,14 @@ struct String8 {
|
||||||
u64 size;
|
u64 size;
|
||||||
|
|
||||||
const char *c() const { return reinterpret_cast<const char *>(str); }
|
const char *c() const { return reinterpret_cast<const char *>(str); }
|
||||||
u8 operator[](u64 idx) const { return str[idx]; }
|
u8 operator[](u64 idx) const {
|
||||||
|
assert(idx < size);
|
||||||
|
return str[idx];
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
#define str8(s) String8 { (u8*)(s), sizeof(s) - 1 }
|
#define str8(s) String8 { (u8*)(s), sizeof(s) - 1 }
|
||||||
|
|
||||||
String8 str8_from_c(const char *str);
|
|
||||||
String8 push_str8f(Arena *arena, char *fmt, ...);
|
|
||||||
|
|
||||||
|
|
||||||
struct String8_Node {
|
struct String8_Node {
|
||||||
String8_Node *next;
|
String8_Node *next;
|
||||||
String8 str;
|
String8 str;
|
||||||
|
|
Loading…
Reference in a new issue