Skip to content

Commit 4aa6a52

Browse files
committed
fix-double-free
1 parent d91d8e1 commit 4aa6a52

File tree

2 files changed

+27
-15
lines changed

2 files changed

+27
-15
lines changed

ouster_client/include/ouster/types.h

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -49,15 +49,14 @@ namespace sensor {
4949
constexpr double range_unit = 0.001;
5050

5151
/** Design values for altitude and azimuth offset angles for gen1 sensors. */
52-
extern const std::vector<double> gen1_altitude_angles;
53-
/** Design values for altitude and azimuth offset angles for gen1 sensors. */
54-
extern const std::vector<double> gen1_azimuth_angles;
55-
56-
/** Design values for imu and lidar to sensor-frame transforms. */
57-
extern const mat4d default_imu_to_sensor_transform;
52+
const std::vector<double>& get_gen1_altitude_angles();
53+
/** Design values for altitude and azimuth offset angles for gen1 sensors. */
54+
const std::vector<double>& get_gen1_azimuth_angles();
5855

5956
/** Design values for imu and lidar to sensor-frame transforms. */
60-
extern const mat4d default_lidar_to_sensor_transform;
57+
const mat4d& get_default_imu_to_sensor_transform();
58+
/** Design values for imu and lidar to sensor-frame transforms. */
59+
const mat4d& get_default_lidar_to_sensor_transform();
6160

6261
/**
6362
* Constants used for configuration. Refer to the sensor documentation for the

ouster_client/src/sensor_info.cpp

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -99,14 +99,14 @@ sensor_info default_sensor_info(lidar_mode mode) {
9999
info.prod_line = "OS-1-64";
100100

101101
info.format = default_data_format(mode);
102-
info.beam_azimuth_angles = gen1_azimuth_angles;
103-
info.beam_altitude_angles = gen1_altitude_angles;
102+
info.beam_azimuth_angles = get_gen1_azimuth_angles();
103+
info.beam_altitude_angles = get_gen1_altitude_angles();
104104
info.lidar_origin_to_beam_origin_mm =
105105
default_lidar_origin_to_beam_origin(info.prod_line);
106106
info.beam_to_lidar_transform =
107107
default_beam_to_lidar_transform(info.prod_line);
108-
info.imu_to_sensor_transform = default_imu_to_sensor_transform;
109-
info.lidar_to_sensor_transform = default_lidar_to_sensor_transform;
108+
info.imu_to_sensor_transform = get_default_imu_to_sensor_transform();
109+
info.lidar_to_sensor_transform = get_default_lidar_to_sensor_transform();
110110
info.extrinsic = mat4d::Identity();
111111
info.init_id = 0;
112112
info.build_date = "";
@@ -124,7 +124,7 @@ sensor_info default_sensor_info(lidar_mode mode) {
124124
}
125125

126126
// clang-format off
127-
extern const std::vector<double> gen1_altitude_angles = {
127+
static const std::vector<double> gen1_altitude_angles = {
128128
16.611, 16.084, 15.557, 15.029, 14.502, 13.975, 13.447, 12.920,
129129
12.393, 11.865, 11.338, 10.811, 10.283, 9.756, 9.229, 8.701,
130130
8.174, 7.646, 7.119, 6.592, 6.064, 5.537, 5.010, 4.482,
@@ -134,8 +134,11 @@ extern const std::vector<double> gen1_altitude_angles = {
134134
-8.701, -9.229, -9.756, -10.283, -10.811, -11.338, -11.865, -12.393,
135135
-12.920, -13.447, -13.975, -14.502, -15.029, -15.557, -16.084, -16.611,
136136
};
137+
const std::vector<double>& get_gen1_altitude_angles() {
138+
return gen1_altitude_angles;
139+
}
137140

138-
extern const std::vector<double> gen1_azimuth_angles = {
141+
static const std::vector<double> gen1_azimuth_angles = {
139142
3.164, 1.055, -1.055, -3.164, 3.164, 1.055, -1.055, -3.164,
140143
3.164, 1.055, -1.055, -3.164, 3.164, 1.055, -1.055, -3.164,
141144
3.164, 1.055, -1.055, -3.164, 3.164, 1.055, -1.055, -3.164,
@@ -146,16 +149,26 @@ extern const std::vector<double> gen1_azimuth_angles = {
146149
3.164, 1.055, -1.055, -3.164, 3.164, 1.055, -1.055,
147150
-3.164,
148151
};
152+
const std::vector<double>& get_gen1_azimuth_angles() {
153+
return gen1_azimuth_angles;
154+
}
149155
// clang-format on
150156

151-
extern const mat4d default_imu_to_sensor_transform =
157+
static const mat4d default_imu_to_sensor_transform =
152158
(mat4d() << 1, 0, 0, 6.253, 0, 1, 0, -11.775, 0, 0, 1, 7.645, 0, 0, 0, 1)
153159
.finished();
160+
const mat4d& get_default_imu_to_sensor_transform() {
161+
return default_imu_to_sensor_transform;
162+
}
154163

155-
extern const mat4d default_lidar_to_sensor_transform =
164+
static const mat4d default_lidar_to_sensor_transform =
156165
(mat4d() << -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 36.18, 0, 0, 0, 1)
157166
.finished();
158167

168+
const mat4d& get_default_lidar_to_sensor_transform() {
169+
return default_lidar_to_sensor_transform;
170+
}
171+
159172
/* String conversion */
160173

161174
// bool represents whether it is an object (true) or just a member (false)

0 commit comments

Comments
 (0)