Opened 11 years ago

Closed 11 years ago

Last modified 9 years ago

#424 closed defect (fixed)

user mask crashes when editing nonexistant field

Reported by: westram Owned by: westram
Priority: major Milestone:
Component: Library (GUI) Version: gtkport
Keywords: Cc:

Description (last modified by westram)

reproduce:

  • store attached macro in ~/.arb_prop/macros
  • run
    cd $ARBHOME
    bin/arb_ntree --execute _logged demo.arb
    
  • edit 'Author' field

Attachments (1)

_logged.amc (938 bytes) - added by westram 11 years ago.

Download all attachments as: .zip

Change History (7)

Changed 11 years ago by westram

comment:1 Changed 11 years ago by westram

  • Description modified (diff)
  • works in trunk
  • macro needs to be stored in ~/.arb_prop (as long as #425 is not fixed)

comment:2 Changed 11 years ago by epruesse

If it happens when the field doesn't exist and the user masks work by mapping awars, it's probably a problem in AW_awar.cxx at the bottom where the awars are bound to G_OBJECT properties. There is no code to "create" database entries IIRC.

comment:3 Changed 11 years ago by westram

  • Milestone changed from gtkmerge to powerusability
  • Owner changed from devel to westram
  • Status changed from new to assigned

comment:4 Changed 11 years ago by westram

  • Status changed from assigned to new

comment:5 Changed 11 years ago by epruesse

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

fixed by r11647

The problem was that the CB in the AWT_edit_string code disconnected itself from the AWAR (and thereby the signal). Disconnecting any other CB would have been fine, but removing itself invalidated the iterator in the emission loop — undefined behavior i.e. a crash resulted.

AW_signal is now "reentrant". Signal-handlers (aka CBs or slots) are now marked as deleted, no longer executed, and removed upon completion of signal emission.

Re-emitting a signal in a handler causes recursion. Recursion depth is limited to 100 (will abort with warning by means of aw_return_if_fail).

comment:6 Changed 9 years ago by westram

  • Milestone powerusability deleted

Milestone powerusability deleted

Note: See TracTickets for help on using tickets.