Skip to content

Commit 525851d

Browse files
authored
Merge pull request #2076 from joto/gen-simplify-tracer
Generalizer: Simplify tracer code, use local instead of member vars
2 parents 2437f83 + 723b64d commit 525851d

File tree

2 files changed

+8
-8
lines changed

2 files changed

+8
-8
lines changed

src/gen/tracer.cpp

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,18 +26,22 @@ tracer_t::trace(canvas_t const &canvas, tile_t const &tile, double min_area)
2626
{
2727
prepare(canvas);
2828

29-
m_state.reset(potrace_trace(m_param.get(), &m_bitmap));
30-
if (!m_state || m_state->status != POTRACE_STATUS_OK) {
29+
potrace_bitmap_t bitmap{int(canvas.size()), int(canvas.size()),
30+
int(canvas.size() / bits_per_word), m_bits.data()};
31+
32+
std::unique_ptr<potrace_state_t, potrace_state_deleter> state{
33+
potrace_trace(m_param.get(), &bitmap)};
34+
35+
if (!state || state->status != POTRACE_STATUS_OK) {
3136
throw std::runtime_error{"potrace failed"};
3237
}
3338

34-
return build_geometries(tile, m_state->plist, min_area);
39+
return build_geometries(tile, state->plist, min_area);
3540
}
3641

3742
void tracer_t::reset()
3843
{
3944
m_bits.clear();
40-
m_state.reset();
4145
m_num_points = 0;
4246
}
4347

@@ -70,8 +74,6 @@ void tracer_t::prepare(canvas_t const &canvas) noexcept
7074

7175
m_bits.push_back(w);
7276
}
73-
74-
m_bitmap = {int(size), int(size), int(size / bits_per_word), m_bits.data()};
7577
}
7678

7779
std::vector<geom::geometry_t>

src/gen/tracer.hpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,9 +64,7 @@ class tracer_t
6464
double min_area) noexcept;
6565

6666
std::vector<potrace_word> m_bits;
67-
potrace_bitmap_t m_bitmap{};
6867
std::unique_ptr<potrace_param_t, potrace_param_deleter> m_param;
69-
std::unique_ptr<potrace_state_t, potrace_state_deleter> m_state;
7068
std::size_t m_extent;
7169
std::size_t m_buffer;
7270
std::size_t m_num_points = 0;

0 commit comments

Comments
 (0)