MCPcopy Create free account
hub / github.com/R2Northstar/NorthstarLauncher / RecursiveCopyKeyValues

Method RecursiveCopyKeyValues

primedev/shared/keyvalues.cpp:1101–1193  ·  view source on GitHub ↗

----------------------------------------------------------------------------- Purpose: Input : &src - -----------------------------------------------------------------------------

Source from the content-addressed store, hash-verified

1099// Input : &src -
1100//-----------------------------------------------------------------------------
1101void KeyValues::RecursiveCopyKeyValues(KeyValues& src)
1102{
1103 // garymcthack - need to check this code for possible buffer overruns.
1104
1105 m_iKeyName = src.m_iKeyName;
1106 m_iKeyNameCaseSensitive1 = src.m_iKeyNameCaseSensitive1;
1107 m_iKeyNameCaseSensitive2 = src.m_iKeyNameCaseSensitive2;
1108
1109 if (!src.m_pSub)
1110 {
1111 m_iDataType = src.m_iDataType;
1112 char buf[256];
1113 switch (src.m_iDataType)
1114 {
1115 case TYPE_NONE:
1116 break;
1117 case TYPE_STRING:
1118 if (src.m_sValue)
1119 {
1120 size_t len = strlen(src.m_sValue) + 1;
1121 m_sValue = new char[len];
1122 strncpy(m_sValue, src.m_sValue, len);
1123 }
1124 break;
1125 case TYPE_INT:
1126 {
1127 m_iValue = src.m_iValue;
1128 snprintf(buf, sizeof(buf), "%d", m_iValue);
1129 size_t len = strlen(buf) + 1;
1130 m_sValue = new char[len];
1131 strncpy(m_sValue, buf, len);
1132 }
1133 break;
1134 case TYPE_FLOAT:
1135 {
1136 m_flValue = src.m_flValue;
1137 snprintf(buf, sizeof(buf), "%f", m_flValue);
1138 size_t len = strlen(buf) + 1;
1139 m_sValue = new char[len];
1140 strncpy(m_sValue, buf, len);
1141 }
1142 break;
1143 case TYPE_PTR:
1144 {
1145 m_pValue = src.m_pValue;
1146 }
1147 break;
1148 case TYPE_UINT64:
1149 {
1150 m_sValue = new char[sizeof(uint64_t)];
1151 memcpy(m_sValue, src.m_sValue, sizeof(uint64_t));
1152 }
1153 break;
1154 case TYPE_COLOR:
1155 {
1156 m_Color[0] = src.m_Color[0];
1157 m_Color[1] = src.m_Color[1];
1158 m_Color[2] = src.m_Color[2];

Callers

nothing calls this directly

Calls 2

InitMethod · 0.45
SetNameMethod · 0.45

Tested by

no test coverage detected