Fixed all -Wtype-limits warnings

This commit is contained in:
matlabbe
2024-11-15 14:13:13 -08:00
parent 966feefb35
commit a584245029
9 changed files with 107 additions and 107 deletions
+1 -1
View File
@@ -61,7 +61,7 @@ IF(WIN32 AND NOT MINGW)
ADD_DEFINITIONS("-DNOMINMAX")
ADD_DEFINITIONS("-wd4100 -wd4127 -wd4150 -wd4191 -wd4242 -wd4244 -wd4251 -wd4305 -wd4365 -wd4512 -wd4514 -wd4548 -wd4571 -wd4619 -wd4625 -wd4626 -wd4628 -wd4668 -wd4710 -wd4711 -wd4738 -wd4820 -wd4946 -wd4986")
ELSE ()
ADD_DEFINITIONS( "-Wall" )
ADD_DEFINITIONS( "-Wall -Wtype-limits" )
ADD_DEFINITIONS("-Wno-unknown-pragmas")
ENDIF()
@@ -219,7 +219,7 @@ private:
bool hasColor_;
float rangeMax_;
bool rayTracing_;
unsigned int emptyFloodFillDepth_;
unsigned int emptyFloodFillDepth_;
};
} /* namespace rtabmap */
+1 -1
View File
@@ -4753,7 +4753,7 @@ void Rtabmap::setMemoryThreshold(int maxMemoryAllowed)
{
//must be positive, 0 mean inf memory allowed (no memory limit)
_maxMemoryAllowed = maxMemoryAllowed;
if(_maxMemoryAllowed < 0)
if(maxMemoryAllowed < 0)
{
ULOGGER_WARN("maxMemoryAllowed < 0, then setting it to 0 (inf).");
_maxMemoryAllowed = 0;
+10 -10
View File
@@ -66,7 +66,7 @@ void OccupancyGrid::setMap(const cv::Mat & map, float xMin, float yMin, float ce
{
for(int j=0; j<map_.cols; ++j)
{
const char value = map_.at<char>(i,j);
const char value = map_.at<signed char>(i,j);
float * info = mapInfo_.ptr<float>(i,j);
if(value == 0)
{
@@ -116,15 +116,15 @@ cv::Mat OccupancyGrid::getMap(float & xMin, float & yMin) const
const float * info = mapInfo_.ptr<float>(i, j);
if(info[3] == 0.0f)
{
map.at<char>(i, j) = -1; // unknown
map.at<signed char>(i, j) = -1; // unknown
}
else if(info[3] >= occThr)
{
map.at<char>(i, j) = 100; // unknown
map.at<signed char>(i, j) = 100; // unknown
}
else
{
map.at<char>(i, j) = 0; // empty
map.at<signed char>(i, j) = 0; // empty
}
}
}
@@ -155,11 +155,11 @@ cv::Mat OccupancyGrid::getProbMap(float & xMin, float & yMin) const
const float * info = mapInfo_.ptr<float>(i, j);
if(info[3] == 0.0f)
{
map.at<char>(i, j) = -1; // unknown
map.at<signed char>(i, j) = -1; // unknown
}
else
{
map.at<char>(i, j) = char(probability(info[3])*100.0f); // empty
map.at<signed char>(i, j) = char(probability(info[3])*100.0f); // empty
}
}
}
@@ -447,7 +447,7 @@ void OccupancyGrid::assemble(const std::list<std::pair<int, Transform> > & newPo
UASSERT_MSG(pt.y >=0 && pt.y < map.rows && pt.x >= 0 && pt.x < map.cols,
uFormat("%d: pt=(%d,%d) map=%dx%d rawPt=(%f,%f) xMin=%f yMin=%f channels=%dvs%d",
kter->first, pt.x, pt.y, map.cols, map.rows, ptf[0], ptf[1], xMin, yMin, iter->second.channels(), mapInfo.channels()-1).c_str());
char & value = map.at<char>(pt.y, pt.x);
signed char & value = map.at<signed char>(pt.y, pt.x);
if(value != -2)
{
float * info = mapInfo.ptr<float>(pt.y, pt.x);
@@ -523,7 +523,7 @@ void OccupancyGrid::assemble(const std::list<std::pair<int, Transform> > & newPo
for(int j=ptBegin.y; j<ptEnd.y; ++j)
{
UASSERT(j < map.rows && i < map.cols);
char & value = map.at<char>(j, i);
signed char & value = map.at<signed char>(j, i);
float * info = mapInfo.ptr<float>(j, i);
int nodeId = (int)info[0];
if(value != -1)
@@ -573,7 +573,7 @@ void OccupancyGrid::assemble(const std::list<std::pair<int, Transform> > & newPo
UASSERT_MSG(pt.y>=0 && pt.y < map.rows && pt.x>=0 && pt.x < map.cols,
uFormat("%d: pt=(%d,%d) map=%dx%d rawPt=(%f,%f) xMin=%f yMin=%f channels=%dvs%d",
kter->first, pt.x, pt.y, map.cols, map.rows, ptf[0], ptf[1], xMin, yMin, jter->second.channels(), mapInfo.channels()-1).c_str());
char & value = map.at<char>(pt.y, pt.x);
signed char & value = map.at<signed char>(pt.y, pt.x);
if(value != -2)
{
float * info = mapInfo.ptr<float>(pt.y, pt.x);
@@ -638,7 +638,7 @@ void OccupancyGrid::assemble(const std::list<std::pair<int, Transform> > & newPo
{
for(int j=1; j<map.cols-1; ++j)
{
char & value = map.at<char>(i, j);
signed char & value = map.at<signed char>(i, j);
if(value == -2)
{
value = 0;
+1 -1
View File
@@ -320,7 +320,7 @@ OctoMap::OctoMap(const LocalGridCache * cache, const ParametersMap & parameters)
Parameters::parse(parameters, Parameters::kGridRayTracing(), rayTracing_);
Parameters::parse(parameters, Parameters::kGridGlobalFloodFillDepth(), emptyFloodFillDepth_);
UASSERT(emptyFloodFillDepth_>=0 && emptyFloodFillDepth_<=16);
UASSERT(emptyFloodFillDepth_<=16);
UDEBUG("rangeMax_ =%f", rangeMax_);
UDEBUG("rayTracing_ =%s", rayTracing_?"true":"false");
+61 -61
View File
@@ -359,7 +359,7 @@ cv::Mat create2DMapFromOccupancyLocalMaps(
cv::Point2i pt((ptf[0]-xMin)/cellSize, (ptf[1]-yMin)/cellSize);
UASSERT_MSG(pt.y>0 && pt.y<map.rows && pt.x>0 && pt.x<map.cols,
uFormat("id=%d, map min=(%f, %f) max=(%f,%f) map=%dx%d pt=(%d,%d)", kter->first, xMin, yMin, xMax, yMax, map.cols, map.rows, pt.x, pt.y).c_str());
char & value = map.at<char>(pt.y, pt.x);
signed char & value = map.at<signed char>(pt.y, pt.x);
if(value != -2)
{
value = 0; // free space
@@ -385,7 +385,7 @@ cv::Mat create2DMapFromOccupancyLocalMaps(
{
for(int j=ptBegin.y; j<ptEnd.y; ++j)
{
map.at<char>(j, i) = -2; // free space (footprint)
map.at<signed char>(j, i) = -2; // free space (footprint)
}
}
}
@@ -398,7 +398,7 @@ cv::Mat create2DMapFromOccupancyLocalMaps(
cv::Point2i pt((ptf[0]-xMin)/cellSize, (ptf[1]-yMin)/cellSize);
UASSERT_MSG(pt.y>0 && pt.y<map.rows && pt.x>0 && pt.x<map.cols,
uFormat("id=%d: map min=(%f, %f) max=(%f,%f) map=%dx%d pt=(%d,%d)", kter->first, xMin, yMin, xMax, yMax, map.cols, map.rows, pt.x, pt.y).c_str());
char & value = map.at<char>(pt.y, pt.x);
signed char & value = map.at<signed char>(pt.y, pt.x);
if(value != -2)
{
value = 100; // obstacles
@@ -416,44 +416,44 @@ cv::Mat create2DMapFromOccupancyLocalMaps(
{
for(int j=0; j<map.cols; ++j)
{
if(map.at<char>(i, j) == -2)
if(map.at<signed char>(i, j) == -2)
{
updatedMap.at<char>(i, j) = 0;
updatedMap.at<signed char>(i, j) = 0;
}
if(i >=2 && i<map.rows-2 && j>=2 && j<map.cols-2)
{
if(map.at<char>(i, j) == -1 &&
map.at<char>(i+1, j) != -1 &&
map.at<char>(i-1, j) != -1 &&
map.at<char>(i, j+1) != -1 &&
map.at<char>(i, j-1) != -1)
if(map.at<signed char>(i, j) == -1 &&
map.at<signed char>(i+1, j) != -1 &&
map.at<signed char>(i-1, j) != -1 &&
map.at<signed char>(i, j+1) != -1 &&
map.at<signed char>(i, j-1) != -1)
{
updatedMap.at<char>(i, j) = 0;
updatedMap.at<signed char>(i, j) = 0;
}
else if(map.at<char>(i, j) == 100)
else if(map.at<signed char>(i, j) == 100)
{
// obstacle/empty/unknown -> remove empty
// unknown/empty/obstacle -> remove empty
if((map.at<char>(i-1, j) == 0 || map.at<char>(i-1, j) == -2) &&
map.at<char>(i-2, j) == -1)
if((map.at<signed char>(i-1, j) == 0 || map.at<signed char>(i-1, j) == -2) &&
map.at<signed char>(i-2, j) == -1)
{
updatedMap.at<char>(i-1, j) = -1;
updatedMap.at<signed char>(i-1, j) = -1;
}
else if((map.at<char>(i+1, j) == 0 || map.at<char>(i+1, j) == -2) &&
map.at<char>(i+2, j) == -1)
else if((map.at<signed char>(i+1, j) == 0 || map.at<signed char>(i+1, j) == -2) &&
map.at<signed char>(i+2, j) == -1)
{
updatedMap.at<char>(i+1, j) = -1;
updatedMap.at<signed char>(i+1, j) = -1;
}
if((map.at<char>(i, j-1) == 0 || map.at<char>(i, j-1) == -2) &&
map.at<char>(i, j-2) == -1)
if((map.at<signed char>(i, j-1) == 0 || map.at<signed char>(i, j-1) == -2) &&
map.at<signed char>(i, j-2) == -1)
{
updatedMap.at<char>(i, j-1) = -1;
updatedMap.at<signed char>(i, j-1) = -1;
}
else if((map.at<char>(i, j+1) == 0 || map.at<char>(i, j+1) == -2) &&
map.at<char>(i, j+2) == -1)
else if((map.at<signed char>(i, j+1) == 0 || map.at<signed char>(i, j+1) == -2) &&
map.at<signed char>(i, j+2) == -1)
{
updatedMap.at<char>(i, j+1) = -1;
updatedMap.at<signed char>(i, j+1) = -1;
}
if(erode)
@@ -461,18 +461,18 @@ cv::Mat create2DMapFromOccupancyLocalMaps(
obstacleIndices.push_back(std::make_pair(i, j));
}
}
else if(map.at<char>(i, j) == 0)
else if(map.at<signed char>(i, j) == 0)
{
// obstacle/empty/obstacle -> remove empty
if(map.at<char>(i-1, j) == 100 &&
map.at<char>(i+1, j) == 100)
if(map.at<signed char>(i-1, j) == 100 &&
map.at<signed char>(i+1, j) == 100)
{
updatedMap.at<char>(i, j) = -1;
updatedMap.at<signed char>(i, j) = -1;
}
else if(map.at<char>(i, j-1) == 100 &&
map.at<char>(i, j+1) == 100)
else if(map.at<signed char>(i, j-1) == 100 &&
map.at<signed char>(i, j+1) == 100)
{
updatedMap.at<char>(i, j) = -1;
updatedMap.at<signed char>(i, j) = -1;
}
}
}
@@ -490,16 +490,16 @@ cv::Mat create2DMapFromOccupancyLocalMaps(
{
int i = iter->first;
int j = iter->second;
int touchEmpty = (map.at<char>(i+1, j) == 0?1:0) +
(map.at<char>(i-1, j) == 0?1:0) +
(map.at<char>(i, j+1) == 0?1:0) +
(map.at<char>(i, j-1) == 0?1:0);
if(touchEmpty>=3 && map.at<char>(i+1, j) != -1 &&
map.at<char>(i-1, j) != -1 &&
map.at<char>(i, j+1) != -1 &&
map.at<char>(i, j-1) != -1)
int touchEmpty = (map.at<signed char>(i+1, j) == 0?1:0) +
(map.at<signed char>(i-1, j) == 0?1:0) +
(map.at<signed char>(i, j+1) == 0?1:0) +
(map.at<signed char>(i, j-1) == 0?1:0);
if(touchEmpty>=3 && map.at<signed char>(i+1, j) != -1 &&
map.at<signed char>(i-1, j) != -1 &&
map.at<signed char>(i, j+1) != -1 &&
map.at<signed char>(i, j-1) != -1)
{
erodedMap.at<char>(i, j) = 0; // empty
erodedMap.at<signed char>(i, j) = 0; // empty
}
}
map = erodedMap;
@@ -677,7 +677,7 @@ cv::Mat create2DMap(const std::map<int, Transform> & poses,
cv::Point2i end((ptr[0]-xMin)/cellSize, (ptr[1]-yMin)/cellSize);
if(end!=start)
{
map.at<char>(end.y, end.x) = 100; // obstacle
map.at<signed char>(end.y, end.x) = 100; // obstacle
}
}
}
@@ -703,7 +703,7 @@ cv::Mat create2DMap(const std::map<int, Transform> & poses,
cv::Point2i end((pt[0]-xMin)/cellSize, (pt[1]-yMin)/cellSize);
if(end!=start)
{
if(localScans.size() > 1 || map.at<char>(end.y, end.x) != 0)
if(localScans.size() > 1 || map.at<signed char>(end.y, end.x) != 0)
{
rayTrace(start, end, map, true); // trace free space
}
@@ -730,12 +730,12 @@ cv::Mat create2DMap(const std::map<int, Transform> & poses,
cv::Point2i end((pt[0]-xMin)/cellSize, (pt[1]-yMin)/cellSize);
if(end!=start)
{
if(localScans.size() > 1 || map.at<char>(end.y, end.x) != 0)
if(localScans.size() > 1 || map.at<signed char>(end.y, end.x) != 0)
{
rayTrace(start, end, map, true); // trace free space
if(map.at<char>(end.y, end.x) == -1)
if(map.at<signed char>(end.y, end.x) == -1)
{
map.at<char>(end.y, end.x) = 0; // empty
map.at<signed char>(end.y, end.x) = 0; // empty
}
}
}
@@ -879,14 +879,14 @@ void rayTrace(const cv::Point2i & start, const cv::Point2i & end, cv::Mat & grid
for(int y = lowerbound; y<=(int)upperbound; ++y)
{
char * v;
signed char * v;
if(swapped)
{
v = &grid.at<char>(x, y);
v = &grid.at<signed char>(x, y);
}
else
{
v = &grid.at<char>(y, x);
v = &grid.at<signed char>(y, x);
}
if(*v == 100 && stopOnObstacle)
{
@@ -909,7 +909,7 @@ cv::Mat convertMap2Image8U(const cv::Mat & map8S, bool pgmFormat)
{
for (int j = 0; j < map8S.cols; ++j)
{
char v = pgmFormat?map8S.at<char>((map8S.rows-1)-i, j):map8S.at<char>(i, j);
signed char v = pgmFormat?map8S.at<signed char>((map8S.rows-1)-i, j):map8S.at<signed char>(i, j);
unsigned char gray;
if(v == 0)
{
@@ -950,7 +950,7 @@ cv::Mat convertImage8U2Map(const cv::Mat & map8U, bool pgmFormat)
{
for (int j = 0; j < map8U.cols; ++j)
{
unsigned char v = pgmFormat?map8U.at<char>((map8U.rows-1)-i, j):map8U.at<char>(i, j);
unsigned char v = pgmFormat?map8U.at<signed char>((map8U.rows-1)-i, j):map8U.at<signed char>(i, j);
char occupancy;
if(pgmFormat)
{
@@ -987,7 +987,7 @@ cv::Mat convertImage8U2Map(const cv::Mat & map8U, bool pgmFormat)
}
}
map8S.at<char>(i, j) = occupancy;
map8S.at<signed char>(i, j) = occupancy;
}
}
return map8S;
@@ -1001,20 +1001,20 @@ cv::Mat erodeMap(const cv::Mat & map)
{
for(int j=0; j<map.cols; ++j)
{
if(map.at<char>(i, j) == 100)
if(map.at<signed char>(i, j) == 100)
{
// remove obstacles which touch at least 3 empty cells but not unknown cells
int touchEmpty = (map.at<char>(i+1, j) == 0?1:0) +
(map.at<char>(i-1, j) == 0?1:0) +
(map.at<char>(i, j+1) == 0?1:0) +
(map.at<char>(i, j-1) == 0?1:0);
int touchEmpty = (map.at<signed char>(i+1, j) == 0?1:0) +
(map.at<signed char>(i-1, j) == 0?1:0) +
(map.at<signed char>(i, j+1) == 0?1:0) +
(map.at<signed char>(i, j-1) == 0?1:0);
if(touchEmpty>=3 && map.at<char>(i+1, j) != -1 &&
map.at<char>(i-1, j) != -1 &&
map.at<char>(i, j+1) != -1 &&
map.at<char>(i, j-1) != -1)
if(touchEmpty>=3 && map.at<signed char>(i+1, j) != -1 &&
map.at<signed char>(i-1, j) != -1 &&
map.at<signed char>(i, j+1) != -1 &&
map.at<signed char>(i, j-1) != -1)
{
erodedMap.at<char>(i, j) = 0; // empty
erodedMap.at<signed char>(i, j) = 0; // empty
}
}
}
+4 -4
View File
@@ -7165,14 +7165,14 @@ void DatabaseViewer::sliderIterationsValueChanged(int value)
for(int y=0; y<map.rows; ++y)
{
// check for first
if(!firstSet && map.at<char>(y, x) != -1)
if(!firstSet && map.at<signed char>(y, x) != -1)
{
xFirst = x;
firstSet = true;
}
// check for last
int opp = map.cols-(x+1);
if(!lastSet && map.at<char>(y, opp) != -1)
if(!lastSet && map.at<signed char>(y, opp) != -1)
{
xLast = opp;
lastSet = true;
@@ -7186,14 +7186,14 @@ void DatabaseViewer::sliderIterationsValueChanged(int value)
for(int x=0; x<map.cols; ++x)
{
// check for first
if(!firstSet && map.at<char>(y, x) != -1)
if(!firstSet && map.at<signed char>(y, x) != -1)
{
yFirst = y;
firstSet = true;
}
// check for last
int opp = map.rows-(y+1);
if(!lastSet && map.at<char>(map.rows-(y+1), x) != -1)
if(!lastSet && map.at<signed char>(map.rows-(y+1), x) != -1)
{
yLast = opp;
lastSet = true;
+4 -4
View File
@@ -54,7 +54,7 @@ public:
public:
UVariant();
UVariant(const bool & value);
UVariant(const char & value);
UVariant(const signed char & value);
UVariant(const unsigned char & value);
UVariant(const short & value);
UVariant(const unsigned short & value);
@@ -64,7 +64,7 @@ public:
UVariant(const double & value);
UVariant(const char * value);
UVariant(const std::string & value);
UVariant(const std::vector<char> & value);
UVariant(const std::vector<signed char> & value);
UVariant(const std::vector<unsigned char> & value);
UVariant(const std::vector<short> & value);
UVariant(const std::vector<unsigned short> & value);
@@ -96,7 +96,7 @@ public:
bool isDoubleArray() const {return type_ == kDoubleArray;}
bool toBool() const;
char toChar(bool * ok = 0) const;
signed char toChar(bool * ok = 0) const;
unsigned char toUChar(bool * ok = 0) const;
short toShort(bool * ok = 0) const;
unsigned short toUShort(bool * ok = 0) const;
@@ -105,7 +105,7 @@ public:
float toFloat(bool * ok = 0) const;
double toDouble(bool * ok = 0) const;
std::string toStr(bool * ok = 0) const;
std::vector<char> toCharArray(bool * ok = 0) const;
std::vector<signed char> toCharArray(bool * ok = 0) const;
std::vector<unsigned char> toUCharArray(bool * ok = 0) const;
std::vector<short> toShortArray(bool * ok = 0) const;
std::vector<unsigned short> toUShortArray(bool * ok = 0) const;
+24 -24
View File
@@ -32,11 +32,11 @@ UVariant::UVariant(const bool & value) :
{
data_[0] = value?1:0;
}
UVariant::UVariant(const char & value) :
UVariant::UVariant(const signed char & value) :
type_(kChar),
data_(sizeof(char))
data_(sizeof(signed char))
{
memcpy(data_.data(), &value, sizeof(char));
memcpy(data_.data(), &value, sizeof(signed char));
}
UVariant::UVariant(const unsigned char & value) :
type_(kUChar),
@@ -93,11 +93,11 @@ UVariant::UVariant(const std::string & value) :
{
memcpy(data_.data(), value.data(), value.size()+1);
}
UVariant::UVariant(const std::vector<char> & value) :
UVariant::UVariant(const std::vector<signed char> & value) :
type_(kCharArray),
data_(sizeof(char)*value.size())
data_(sizeof(signed char)*value.size())
{
memcpy(data_.data(), value.data(), sizeof(char)*value.size());
memcpy(data_.data(), value.data(), sizeof(signed char)*value.size());
}
UVariant::UVariant(const std::vector<unsigned char> & value) :
type_(kUCharArray),
@@ -155,16 +155,16 @@ bool UVariant::toBool() const
return false;
}
char UVariant::toChar(bool * ok) const
signed char UVariant::toChar(bool * ok) const
{
if(ok)
{
*ok = false;
}
char v = 0;
signed char v = 0;
if(type_ == kChar)
{
memcpy(&v, data_.data(), sizeof(char));
memcpy(&v, data_.data(), sizeof(signed char));
if(ok)
{
*ok = true;
@@ -173,9 +173,9 @@ char UVariant::toChar(bool * ok) const
else if(type_ == kUChar)
{
unsigned char tmp = toUChar();
if(tmp <= std::numeric_limits<char>::max())
if(tmp <= std::numeric_limits<signed char>::max())
{
v = (char)tmp;
v = (signed char)tmp;
if(ok)
{
*ok = true;
@@ -185,9 +185,9 @@ char UVariant::toChar(bool * ok) const
else if(type_ == kShort)
{
short tmp = toShort();
if(tmp >= std::numeric_limits<char>::min() && tmp <= std::numeric_limits<char>::max())
if(tmp >= std::numeric_limits<signed char>::min() && tmp <= std::numeric_limits<signed char>::max())
{
v = (char)tmp;
v = (signed char)tmp;
if(ok)
{
*ok = true;
@@ -197,9 +197,9 @@ char UVariant::toChar(bool * ok) const
else if(type_ == kUShort)
{
unsigned short tmp = toUShort();
if(tmp <= std::numeric_limits<char>::max())
if(tmp <= std::numeric_limits<signed char>::max())
{
v = (char)tmp;
v = (signed char)tmp;
if(ok)
{
*ok = true;
@@ -209,9 +209,9 @@ char UVariant::toChar(bool * ok) const
else if(type_ == kInt)
{
int tmp = toInt();
if(tmp >= std::numeric_limits<char>::min() && tmp <= std::numeric_limits<char>::max())
if(tmp >= std::numeric_limits<signed char>::min() && tmp <= std::numeric_limits<signed char>::max())
{
v = (char)tmp;
v = (signed char)tmp;
if(ok)
{
*ok = true;
@@ -221,9 +221,9 @@ char UVariant::toChar(bool * ok) const
else if(type_ == kUInt)
{
unsigned int tmp = toUInt();
if(tmp <= (unsigned int)std::numeric_limits<char>::max())
if(tmp <= (unsigned int)std::numeric_limits<signed char>::max())
{
v = (char)tmp;
v = (signed char)tmp;
if(ok)
{
*ok = true;
@@ -395,7 +395,7 @@ unsigned short UVariant::toUShort(bool * ok) const
}
else if(type_ == kChar)
{
char tmp = toChar();
signed char tmp = toChar();
if(tmp >= 0)
{
v = (unsigned short)tmp;
@@ -529,7 +529,7 @@ unsigned int UVariant::toUInt(bool * ok) const
}
else if(type_ == kChar)
{
char tmp = toChar();
signed char tmp = toChar();
if(tmp >= 0)
{
v = (unsigned int)tmp;
@@ -690,14 +690,14 @@ std::string UVariant::toStr(bool * ok) const
return v;
}
std::vector<char> UVariant::toCharArray(bool * ok) const
std::vector<signed char> UVariant::toCharArray(bool * ok) const
{
if(ok)
{
*ok = false;
}
std::vector<char> v;
std::vector<signed char> v;
if(type_ == kCharArray)
{
if(ok)
@@ -706,7 +706,7 @@ std::vector<char> UVariant::toCharArray(bool * ok) const
}
if(data_.size())
{
v.resize(data_.size() / sizeof(char));
v.resize(data_.size() / sizeof(signed char));
memcpy(v.data(), data_.data(), data_.size());
}
}