Commit cf371929657dba4d54fd7c801dfe691f23477831
1 parent
ff3908b9
Exists in
master
and in
5 other branches
Melhorando tratamento de excessões na criação do objeto.
Showing
1 changed file
with
12 additions
and
13 deletions
Show diff stats
src/python/init.cc
... | ... | @@ -41,18 +41,7 @@ |
41 | 41 | |
42 | 42 | PyObject * terminal_new(PyTypeObject *type, PyObject *args, PyObject *kwds) { |
43 | 43 | |
44 | - pw3270_TerminalObject *self = (pw3270_TerminalObject *) type->tp_alloc(type, 0); | |
45 | - | |
46 | - trace("%s: self=%p",__FUNCTION__,self); | |
47 | - | |
48 | - self->session = NULL; | |
49 | - | |
50 | - return (PyObject *)self; | |
51 | -} | |
52 | - | |
53 | - | |
54 | -int terminal_init(pw3270_TerminalObject *self, PyObject *args, PyObject *kwds) { | |
55 | - | |
44 | + PW3270_NAMESPACE::session * session; | |
56 | 45 | const char *id = ""; |
57 | 46 | |
58 | 47 | if (!PyArg_ParseTuple(args, "s", &id)) { |
... | ... | @@ -63,15 +52,25 @@ int terminal_init(pw3270_TerminalObject *self, PyObject *args, PyObject *kwds) { |
63 | 52 | |
64 | 53 | try { |
65 | 54 | |
66 | - self->session = PW3270_NAMESPACE::session::create(id); | |
55 | + session = PW3270_NAMESPACE::session::create(id); | |
67 | 56 | |
68 | 57 | } catch(std::exception &e) { |
69 | 58 | |
70 | 59 | trace("%s failed: %s",__FUNCTION__,e.what()); |
71 | 60 | PyErr_SetString(terminalError, e.what()); |
61 | + return NULL; | |
72 | 62 | |
73 | 63 | } |
74 | 64 | |
65 | + pw3270_TerminalObject *self = (pw3270_TerminalObject *) type->tp_alloc(type, 0); | |
66 | + | |
67 | + self->session = session; | |
68 | + | |
69 | + return (PyObject *)self; | |
70 | +} | |
71 | + | |
72 | + | |
73 | +int terminal_init(pw3270_TerminalObject *self, PyObject *args, PyObject *kwds) { | |
75 | 74 | |
76 | 75 | return 0; |
77 | 76 | ... | ... |