Closed Bug 344033 Opened 18 years ago Closed 18 years ago

segmentation fault on insert with setvalue after all non-zero-length nodes were deleted

Categories

(Core Graveyard :: XForms, defect)

x86
Linux
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED WORKSFORME

People

(Reporter: jurrit, Unassigned)

Details

User-Agent:       Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.4) Gecko/20060608 Ubuntu/dapper-security Firefox/1.5.0.4
Build Identifier: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.4) Gecko/20060608 Ubuntu/dapper-security Firefox/1.5.0.4

I have an xform that will show a list of inputs. Input fields can be edited, deleted or added. The repeat only shows 'string-length(.)!=0' nodes, so it is possible to re add a node after deleting all. 

Firefox crashes when deleting all the nodes (except the empty one) and trying to re-add a node and setting a value. Example code:

<xf:repeat nodeset="instance('test')/tests/foo[@name=instance('tmp')/f00]/bar[@name=instance('tmp')/b4r]">
  <xf:label>test</xf:label>
  <xf:repeat nodeset="foobar[string-length(.)!=0]" id="repeater">
     <xf:input ref="." />
     <xf:trigger>
       <xf:label>Delete</xf:label>
       <xf:action ev:event="DOMActivate">
         <xf:delete nodeset="instance('test')/tests/foo[@name=instance('tmp')/f00]/bar[@name=instance('tmp')/b4r]/foobar" at="index('repeater')"/>
       </xf:action>
     </xf:trigger>
   </xf:repeat>
   <xf:trigger>
     <xf:label>Insert</xf:label>
     <xf:action ev:event="DOMActivate">
       <xf:insert nodeset="instance('test')/tests/foo[@name=instance('tmp')/f00]/bar[@name=instance('tmp')/b4r]/foobar" at="1" position="before"/>
       <xf:setvalue ref="instance('test')/tests/foo[@name=instance('tmp')/f00]/bar[@name=instance('tmp')/b4r]/foobar">NEW</xf:setvalue>
     </xf:action>
  </xf:trigger>
</xf:repeat>

Reproducible: Always

Steps to Reproduce:
1. delete all nodes visible
2. re-add node
3.

Actual Results:  
segmentation fault

Expected Results:  
add node with value NEW

a smaller example with [string-length(.)!=0] will work as expected
Example on: http://www.virtualconcepts.nl/xforms/virtual.xhtml

1. press Trigger A
2. press Trigger D
3. select test.nl
4. press Trigger G
5. select info
6. press insert
7. press delete
8. press delete
9. press insert
--> segmentation fault
confirm
Status: UNCONFIRMED → NEW
Ever confirmed: true
(In reply to comment #2)
> confirm
> 

I was too quick in confirming :). I can see a problem at 0.5 xforms, but I can't at 0.6 version.

Mark as worksforme.
Status: NEW → RESOLVED
Closed: 18 years ago
Resolution: --- → WORKSFORME
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.