Skip to content

Commit 8af4885

Browse files
committed
Remove code duplication in maybe_new_line by using function delegation.
1 parent 1dbe608 commit 8af4885

1 file changed

Lines changed: 4 additions & 19 deletions

File tree

src/emc/rs274ngc/gcodemodule.cc

Lines changed: 4 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -193,13 +193,12 @@ static InterpBase *pinterp;
193193

194194
#define callmethod(o, m, f, ...) PyObject_CallMethod((o), (char*)(m), (char*)(f), ## __VA_ARGS__)
195195

196-
static void maybe_new_line();
197196
static void maybe_new_line(int sequence_number);
197+
static void maybe_new_line();
198198

199-
static void maybe_new_line() {
199+
static void maybe_new_line(int sequence_number) {
200200
if(!pinterp) return;
201201
if(interp_error) return;
202-
int sequence_number = pinterp->sequence_number();
203202
if(sequence_number == last_sequence_number)
204203
return;
205204
LineCode *new_line_code =
@@ -216,23 +215,9 @@ static void maybe_new_line() {
216215
Py_XDECREF(result);
217216
}
218217

219-
static void maybe_new_line(int sequence_number) {
218+
static void maybe_new_line() {
220219
if(!pinterp) return;
221-
if(interp_error) return;
222-
if(sequence_number == last_sequence_number)
223-
return;
224-
LineCode *new_line_code =
225-
(LineCode*)(PyObject_New(LineCode, &LineCodeType));
226-
pinterp->active_settings(new_line_code->settings);
227-
pinterp->active_g_codes(new_line_code->gcodes);
228-
pinterp->active_m_codes(new_line_code->mcodes);
229-
new_line_code->gcodes[0] = sequence_number;
230-
last_sequence_number = sequence_number;
231-
PyObject *result =
232-
callmethod(callback, "next_line", "O", new_line_code);
233-
Py_DECREF(new_line_code);
234-
if(result == NULL) interp_error ++;
235-
Py_XDECREF(result);
220+
maybe_new_line(pinterp->sequence_number());
236221
}
237222

238223
//das ist für die Vorschau

0 commit comments

Comments
 (0)