Replace mjtSize with size_t for size calculations.
Use unsigned size_t instead of signed mjtSize for size multiplications to avoid Clang's overflow-checking intrinsic. This is semantically correct as size calculations are inherently unsigned. PiperOrigin-RevId: 860172221 Change-Id: I3b6cb720db8771b8f266f1927e2980ac7514538b
This commit is contained in:
committed by
Copybara-Service
parent
30b903b6c0
commit
68537e1e32
@@ -2219,18 +2219,18 @@ void mjCModel::SetSizes() {
|
|||||||
|
|
||||||
// nhfielddata
|
// nhfielddata
|
||||||
for (int i=0; i < nhfield; i++) {
|
for (int i=0; i < nhfield; i++) {
|
||||||
nhfielddata += static_cast<mjtSize>(hfields_[i]->nrow) * hfields_[i]->ncol;
|
nhfielddata += static_cast<size_t>(hfields_[i]->nrow) * hfields_[i]->ncol;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ntexdata
|
// ntexdata
|
||||||
for (int i=0; i < ntex; i++) {
|
for (int i=0; i < ntex; i++) {
|
||||||
const mjCTexture* tex = textures_[i];
|
const mjCTexture* tex = textures_[i];
|
||||||
ntexdata += static_cast<mjtSize>(tex->nchannel) * tex->width * tex->height;
|
ntexdata += static_cast<size_t>(tex->nchannel) * tex->width * tex->height;
|
||||||
}
|
}
|
||||||
|
|
||||||
// nwrap
|
// nwrap
|
||||||
for (int i=0; i < ntendon; i++) {
|
for (int i=0; i < ntendon; i++) {
|
||||||
nwrap += (int)tendons_[i]->path.size();
|
nwrap += static_cast<mjtSize>(tendons_[i]->path.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
// nsensordata
|
// nsensordata
|
||||||
@@ -3574,7 +3574,7 @@ void mjCModel::CopyObjects(mjModel* m) {
|
|||||||
|
|
||||||
// copy elevation data
|
// copy elevation data
|
||||||
memcpy(m->hfield_data + data_adr, phf->data.data(),
|
memcpy(m->hfield_data + data_adr, phf->data.data(),
|
||||||
static_cast<mjtSize>(phf->nrow) * phf->ncol * sizeof(float));
|
static_cast<size_t>(phf->nrow) * phf->ncol * sizeof(float));
|
||||||
|
|
||||||
// advance counter
|
// advance counter
|
||||||
data_adr += phf->nrow*phf->ncol;
|
data_adr += phf->nrow*phf->ncol;
|
||||||
@@ -3595,7 +3595,7 @@ void mjCModel::CopyObjects(mjModel* m) {
|
|||||||
m->tex_adr[i] = data_adr;
|
m->tex_adr[i] = data_adr;
|
||||||
|
|
||||||
// copy rgb data
|
// copy rgb data
|
||||||
mjtSize nbytes = static_cast<mjtSize>(ptex->nchannel) * ptex->width * ptex->height;
|
size_t nbytes = static_cast<size_t>(ptex->nchannel) * ptex->width * ptex->height;
|
||||||
memcpy(m->tex_data + data_adr, ptex->data_.data(), nbytes);
|
memcpy(m->tex_data + data_adr, ptex->data_.data(), nbytes);
|
||||||
|
|
||||||
// advance counter
|
// advance counter
|
||||||
|
|||||||
Reference in New Issue
Block a user