Fix invalid string management [thanks to mtheall for pointing this out]
This commit is contained in:
parent
2fddf6a0be
commit
b250513be0
@ -101,7 +101,7 @@ enum
|
|||||||
|
|
||||||
struct Uniform
|
struct Uniform
|
||||||
{
|
{
|
||||||
const char* name;
|
std::string name;
|
||||||
int pos, size;
|
int pos, size;
|
||||||
int type;
|
int type;
|
||||||
};
|
};
|
||||||
|
@ -161,7 +161,7 @@ int main(int argc, char* argv[])
|
|||||||
for (int i = 0; i < g_uniformCount; i ++)
|
for (int i = 0; i < g_uniformCount; i ++)
|
||||||
{
|
{
|
||||||
Uniform& u = g_uniformTable[i];
|
Uniform& u = g_uniformTable[i];
|
||||||
size_t l = strlen(u.name)+1;
|
size_t l = u.name.length()+1;
|
||||||
f.WriteWord(sp); sp += l;
|
f.WriteWord(sp); sp += l;
|
||||||
f.WriteHword(u.pos-0x10);
|
f.WriteHword(u.pos-0x10);
|
||||||
f.WriteHword(u.pos+u.size-1-0x10);
|
f.WriteHword(u.pos+u.size-1-0x10);
|
||||||
@ -176,9 +176,9 @@ int main(int argc, char* argv[])
|
|||||||
// Write symbols
|
// Write symbols
|
||||||
for (int i = 0; i < g_uniformCount; i ++)
|
for (int i = 0; i < g_uniformCount; i ++)
|
||||||
{
|
{
|
||||||
const char* u = g_uniformTable[i].name;
|
std::string& u = g_uniformTable[i].name;
|
||||||
size_t l = strlen(u)+1;
|
size_t l = u.length()+1;
|
||||||
f.WriteRaw(u, l);
|
f.WriteRaw(u.c_str(), l);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hFile)
|
if (hFile)
|
||||||
@ -196,18 +196,19 @@ int main(int argc, char* argv[])
|
|||||||
for (int i = 0; i < g_uniformCount; i ++)
|
for (int i = 0; i < g_uniformCount; i ++)
|
||||||
{
|
{
|
||||||
Uniform& u = g_uniformTable[i];
|
Uniform& u = g_uniformTable[i];
|
||||||
|
const char* name = u.name.c_str();
|
||||||
if (u.type == UTYPE_FVEC)
|
if (u.type == UTYPE_FVEC)
|
||||||
fprintf(f2, "#define %s_FVEC_%s 0x%02X\n", prefix, u.name, u.pos-0x20);
|
fprintf(f2, "#define %s_FVEC_%s 0x%02X\n", prefix, name, u.pos-0x20);
|
||||||
else if (u.type == UTYPE_IVEC)
|
else if (u.type == UTYPE_IVEC)
|
||||||
fprintf(f2, "#define %s_IVEC_%s 0x%02X\n", prefix, u.name, u.pos-0x80);
|
fprintf(f2, "#define %s_IVEC_%s 0x%02X\n", prefix, name, u.pos-0x80);
|
||||||
else if (u.type == UTYPE_BOOL)
|
else if (u.type == UTYPE_BOOL)
|
||||||
{
|
{
|
||||||
if (u.size == 1)
|
if (u.size == 1)
|
||||||
fprintf(f2, "#define %s_FLAG_%s BIT(%d)\n", prefix, u.name, u.pos-0x88);
|
fprintf(f2, "#define %s_FLAG_%s BIT(%d)\n", prefix, name, u.pos-0x88);
|
||||||
else
|
else
|
||||||
fprintf(f2, "#define %s_FLAG_%s(_n) BIT(%d+(_n))\n", prefix, u.name, u.pos-0x88);
|
fprintf(f2, "#define %s_FLAG_%s(_n) BIT(%d+(_n))\n", prefix, name, u.pos-0x88);
|
||||||
}
|
}
|
||||||
fprintf(f2, "#define %s_ULEN_%s %d\n", prefix, u.name, u.size);
|
fprintf(f2, "#define %s_ULEN_%s %d\n", prefix, name, u.size);
|
||||||
}
|
}
|
||||||
|
|
||||||
fclose(f2);
|
fclose(f2);
|
||||||
|
Loading…
Reference in New Issue
Block a user