Add ASAN and MSAN instrumentation for arena and mjData stack.
PiperOrigin-RevId: 535635490 Change-Id: Ia1e58771bae25bf72c861f57452fb8faa2b918fb
This commit is contained in:
committed by
Copybara-Service
parent
1d79657512
commit
f887c1e928
@@ -38,6 +38,7 @@
|
||||
#include "function_traits.h"
|
||||
#include "indexers.h"
|
||||
#include "mjdata_meta.h"
|
||||
#include "private.h"
|
||||
#include "raw.h"
|
||||
#include "serialization.h"
|
||||
#include <pybind11/numpy.h>
|
||||
@@ -695,7 +696,6 @@ void MjDataWrapper::Serialize(std::ostream& output) const {
|
||||
|
||||
// Write struct and scalar fields
|
||||
#define X(var) WriteBytes(output, &ptr_->var, sizeof(ptr_->var))
|
||||
X(parena);
|
||||
X(maxuse_stack);
|
||||
X(maxuse_arena);
|
||||
X(maxuse_con);
|
||||
@@ -727,7 +727,6 @@ void MjDataWrapper::Serialize(std::ostream& output) const {
|
||||
#define MJ_D(x) this->ptr_->x
|
||||
#define X(type, name, nr, nc) \
|
||||
if ((nr) * (nc)) { \
|
||||
WriteInt(output, PTRDIFF(ptr_->name, ptr_->arena)); \
|
||||
WriteBytes(output, ptr_->name, sizeof(type) * (nr) * (nc)); \
|
||||
}
|
||||
|
||||
@@ -786,7 +785,6 @@ MjDataWrapper MjDataWrapper::Deserialize(std::istream& input) {
|
||||
ReadBytes(input, (void*) &d->var, sizeof(d->var)); \
|
||||
CheckInput(input, "mjData");
|
||||
|
||||
X(parena);
|
||||
X(maxuse_stack);
|
||||
X(maxuse_arena);
|
||||
X(maxuse_con);
|
||||
@@ -816,11 +814,11 @@ MjDataWrapper MjDataWrapper::Deserialize(std::istream& input) {
|
||||
#define MJ_M(x) m.x
|
||||
#undef MJ_D
|
||||
#define MJ_D(x) d->x
|
||||
#define X(type, name, nr, nc) \
|
||||
if ((nr) * (nc)) { \
|
||||
d->name = reinterpret_cast<decltype(d->name)>( \
|
||||
static_cast<char*>(d->arena) + ReadInt(input)); \
|
||||
ReadBytes(input, d->name, sizeof(type) * (nr) * (nc)); \
|
||||
#define X(type, name, nr, nc) \
|
||||
if ((nr) * (nc)) { \
|
||||
d->name = static_cast<decltype(d->name)>( \
|
||||
mj_arenaAlloc(d, sizeof(type) * (nr) * (nc), alignof(type))); \
|
||||
ReadBytes(input, d->name, sizeof(type) * (nr) * (nc)); \
|
||||
}
|
||||
|
||||
MJDATA_ARENA_POINTERS_CONTACT
|
||||
|
||||
Reference in New Issue
Block a user