File tree Expand file tree Collapse file tree 5 files changed +10
-7
lines changed Expand file tree Collapse file tree 5 files changed +10
-7
lines changed Original file line number Diff line number Diff line change @@ -919,7 +919,8 @@ namespace TFE_ForceScript
919
919
} break ;
920
920
case ARG_STRING:
921
921
{
922
- context->SetArgObject (i, (void *)&arg[i].stdStr );
922
+ std::string stdStr (arg[i].strValue );
923
+ context->SetArgObject (i, (void *)&stdStr);
923
924
} break ;
924
925
case ARG_FLOAT2:
925
926
{
Original file line number Diff line number Diff line change @@ -54,8 +54,8 @@ namespace TFE_ForceScript
54
54
Vec2f float2Value;
55
55
Vec3f float3Value;
56
56
Vec4f float4Value;
57
+ char strValue[32 ];
57
58
};
58
- std::string stdStr;
59
59
};
60
60
61
61
// Opaque Handles.
@@ -109,8 +109,8 @@ namespace TFE_ForceScript
109
109
inline ScriptArg scriptArg (u32 value) { ScriptArg arg; arg.type = ARG_U32; arg.uValue = value; return arg; }
110
110
inline ScriptArg scriptArg (f32 value) { ScriptArg arg; arg.type = ARG_F32; arg.fValue = value; return arg; }
111
111
inline ScriptArg scriptArg (bool value) { ScriptArg arg; arg.type = ARG_BOOL; arg.bValue = value; return arg; }
112
- inline ScriptArg scriptArg (const std::string& value) { ScriptArg arg; arg.type = ARG_STRING; arg.stdStr = value; return arg; }
113
- inline ScriptArg scriptArg (const char * value) { ScriptArg arg; arg.type = ARG_STRING; arg.stdStr = value; return arg; }
112
+ inline ScriptArg scriptArg (const std::string& value) { ScriptArg arg; arg.type = ARG_STRING; strcpy ( arg.strValue , value. c_str ()) ; return arg; }
113
+ inline ScriptArg scriptArg (const char * value) { ScriptArg arg; arg.type = ARG_STRING; strcpy ( arg.strValue , value) ; return arg; }
114
114
inline ScriptArg scriptArg (Vec2f value) { ScriptArg arg; arg.type = ARG_FLOAT2; arg.float2Value = value; return arg; }
115
115
inline ScriptArg scriptArg (Vec3f value) { ScriptArg arg; arg.type = ARG_FLOAT3; arg.float3Value = value; return arg; }
116
116
inline ScriptArg scriptArg (Vec4f value) { ScriptArg arg; arg.type = ARG_FLOAT4; arg.float4Value = value; return arg; }
Original file line number Diff line number Diff line change @@ -2034,7 +2034,9 @@ namespace TFE_Jedi
2034
2034
memcpy (unquotedStr, &value[1 ], newLen);
2035
2035
unquotedStr[newLen] = 0 ;
2036
2036
2037
- arg[argCount].stdStr = std::string (unquotedStr);
2037
+ // Force string to fixed-size.
2038
+ unquotedStr[31 ] = 0 ;
2039
+ strcpy (arg[argCount].strValue , unquotedStr);
2038
2040
arg[argCount].type = TFE_ForceScript::ARG_STRING;
2039
2041
argCount++;
2040
2042
}
Original file line number Diff line number Diff line change @@ -1108,7 +1108,7 @@ namespace TFE_Jedi
1108
1108
{
1109
1109
TFE_ForceScript::ScriptArg arg;
1110
1110
arg.type = TFE_ForceScript::ARG_STRING;
1111
- arg.stdStr = levelName;
1111
+ strcpy ( arg.strValue , levelName) ;
1112
1112
TFE_ForceScript::execFunc (s_levelState.levelScriptStart , 1 , &arg);
1113
1113
}
1114
1114
}
Original file line number Diff line number Diff line change @@ -181,7 +181,7 @@ namespace TFE_Jedi
181
181
TFE_System::logWrite (LOG_ERROR, " ScriptArg Serialization" , " Cannot serialize type \" object\" " );
182
182
break ;
183
183
case TFE_ForceScript::ARG_STRING:
184
- SERIALIZE_STRING (version, arg->stdStr );
184
+ SERIALIZE_CSTRING (version, arg->strValue );
185
185
break ;
186
186
case TFE_ForceScript::ARG_FLOAT2:
187
187
SERIALIZE_BUF (version, arg->float2Value .m , sizeof (Vec2f));
You can’t perform that action at this time.
0 commit comments