Ticket #1260 (closed bug: fixed)

Opened 20 months ago

Last modified 20 months ago

Segmentation fault on in_data.clone()

Reported by: ubershmekel Owned by: ales
Milestone: Component: canvas
Severity: minor Keywords:
Cc: Blocking:
Blocked By:

Description (last modified by ubershmekel) (diff)

To reproduce:

  1. make an empty canvas
  2. add a python node and pipe data into it
  3. in the python node type "print in_data.clone()"
  4. click "execute" twice
  5. Segmentation fault (core dumped)

Oddly it works the first execute but the second crashes.

Attached is the cpython stack trace (gdb python core -> where) though I have no idea what I'm doing.

My system:

Ubuntu Release 12.04 (precise) 32-bit

Kernel Linux 3.2.0-34-generic-pae

GNOME 3.4.2

Intel® Core™ i7-2620M CPU @ 2.70GHz × 4

Lenovo Thinkpad x220

Attachments

stack_trace.txt Download (5.6 KB) - added by ubershmekel 20 months ago.
gdb cpython stack trace

Change History

Changed 20 months ago by ubershmekel

gdb cpython stack trace

comment:1 Changed 20 months ago by ubershmekel

  • Description modified (diff)

comment:2 Changed 20 months ago by ales

  • Owner set to ales
  • Status changed from new to assigned

comment:3 Changed 20 months ago by Ales Erjavec <ales.erjavec@…>

  • Status changed from assigned to closed
  • Resolution set to fixed

In [782c9d850e72c1fbccaa1e7c965019ab9f516f80/orange]:

Fixed 'TExampleTable.clone' method (erroneous copy constructor for TExampleTable).

The 'clone' method calls the C++ copy constructor to copy the table,
but the default copy constructor fails to properly copy the instances
(both tables end up claiming ownership of the same memory space).

Fixed by implementing a copy constructor to make a deep copy of
the instances.

Fixes #1260

Note: See TracTickets for help on using tickets.