diff --git a/StandAlone/StandAlone.cpp b/StandAlone/StandAlone.cpp index dd076570e736f3e03911b36fc71932f5f7ed70bb..05197c1b2196da1e3edcd1eba325dd25ce1a2615 100644 --- a/StandAlone/StandAlone.cpp +++ b/StandAlone/StandAlone.cpp @@ -224,7 +224,7 @@ void ProcessConfigFile() } if (config == 0) { - config = new char[strlen(DefaultConfig)]; + config = new char[strlen(DefaultConfig) + 1]; strcpy(config, DefaultConfig); } @@ -862,10 +862,10 @@ char** ReadFileData(const char* fileName) { FILE *in; int errorCode = fopen_s(&in, fileName, "r"); - char* fdata; + char *fdata; int count = 0; const int maxSourceStrings = 5; - char** return_data = (char**)malloc(maxSourceStrings+1); + char** return_data = (char**)malloc(sizeof(char *) * (maxSourceStrings+1)); //return_data[MAX_SOURCE_STRINGS]=NULL; if (errorCode) { diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index d95b2e6e9ab6ef7b101de7cdb71c298dda9ac54c..df9fce15a5fe50b13551f88be5d14322f5ed90f2 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -9,5 +9,5 @@ // source have to figure out how to create revision.h just to get a build // going. However, if it is not updated, it can be a version behind. -#define GLSLANG_REVISION "25392" -#define GLSLANG_DATE "2014/02/18 14:55:42" +#define GLSLANG_REVISION "25400" +#define GLSLANG_DATE "2014/02/18 16:37:57" diff --git a/glslang/MachineIndependent/preprocessor/PpContext.h b/glslang/MachineIndependent/preprocessor/PpContext.h index 69edc2cee576c0f1f3c13cd25e723c41346de9ac..1c14dd0377365813526aa6566d884b2f647ac5c4 100644 --- a/glslang/MachineIndependent/preprocessor/PpContext.h +++ b/glslang/MachineIndependent/preprocessor/PpContext.h @@ -381,7 +381,7 @@ protected: int InitScanner(TPpContext* cpp); int ScanFromString(char* s); void missingEndifCheck(); - int lFloatConst(char* str, int len, int ch, TPpToken* ppToken); + int lFloatConst(int len, int ch, TPpToken* ppToken); bool inComment; diff --git a/glslang/MachineIndependent/preprocessor/PpScanner.cpp b/glslang/MachineIndependent/preprocessor/PpScanner.cpp index 4e68f343d4e4bc862bd80ef63479504f3d80103d..eedb4787529f4b3b622e12333b71c099d11b77ce 100644 --- a/glslang/MachineIndependent/preprocessor/PpScanner.cpp +++ b/glslang/MachineIndependent/preprocessor/PpScanner.cpp @@ -113,7 +113,7 @@ int TPpContext::InitScanner(TPpContext *cpp) * letter 'e', or a precision ending (e.g., F or LF). */ -int TPpContext::lFloatConst(char* str, int len, int ch, TPpToken* ppToken) +int TPpContext::lFloatConst(int len, int ch, TPpToken* ppToken) { bool HasDecimalOrExponent = false; int declen, exp, ExpSign; @@ -124,6 +124,7 @@ int TPpContext::lFloatConst(char* str, int len, int ch, TPpToken* ppToken) exp = 0; str_len=len; + char* str = ppToken->name; if (ch == '.') { HasDecimalOrExponent = true; str[len++]=ch; @@ -220,8 +221,6 @@ int TPpContext::lFloatConst(char* str, int len, int ch, TPpToken* ppToken) ppToken->dval = strtod(str, 0); } - // Suffix: - strcpy(ppToken->name, str); if (isDouble) return CPP_DOUBLECONSTANT; @@ -385,7 +384,7 @@ int TPpContext::tStringInput::scan(TPpToken* ppToken) } while (ch >= '0' && ch <= '9'); } if (ch == '.' || ch == 'e' || ch == 'f' || ch == 'E' || ch == 'F' || ch == 'l' || ch == 'L') - return pp->lFloatConst(ppToken->name, len, ch, ppToken); + return pp->lFloatConst(len, ch, ppToken); // wasn't a float, so must be octal... if (nonOctal) @@ -424,7 +423,7 @@ int TPpContext::tStringInput::scan(TPpToken* ppToken) ch = pp->getChar(); } while (ch >= '0' && ch <= '9'); if (ch == '.' || ch == 'e' || ch == 'f' || ch == 'E' || ch == 'F' || ch == 'l' || ch == 'L') { - return pp->lFloatConst(ppToken->name, len, ch, ppToken); + return pp->lFloatConst(len, ch, ppToken); } else { // Finish handling signed and unsigned integers int numericLen = len; @@ -600,7 +599,7 @@ int TPpContext::tStringInput::scan(TPpToken* ppToken) ch = pp->getChar(); if (ch >= '0' && ch <= '9') { pp->ungetChar(); - return pp->lFloatConst(ppToken->name, 0, '.', ppToken); + return pp->lFloatConst(0, '.', ppToken); } else { pp->ungetChar(); return '.';