PR# 16228 Wrong usage of ARRAYED_LIST in {EV_FIGURE}.default_create

Problem Report Summary
Submitter: maverick
Category: EiffelVision
Priority: Medium
Date: 2009/09/04
Class: Bug
Severity: Serious
Number: 16228
Release: 6.4.7.9451
Confidential: No
Status: Open
Responsible:
Environment: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2
Synopsis: Wrong usage of ARRAYED_LIST in {EV_FIGURE}.default_create

Description
This is a problem with the version of Vision2 delivered in the experimental directory of EiffelStudio.

This is a snippet from {EV_FIGURE}.default_create.  I only kept the lines which are important.

		do
					-- ...
			create points.make (0)
			points.resize (point_count)
					-- ...
			from
				n := 1
				l_object_id := object_id
			until
				n > point_count
			loop
					-- ...
				points.put_i_th (p, n)
					-- ...
				n := n + 1
			end
		end

The problematic line is "points.put_i_th (p, n)".  At its first execution, `points' is guaranteed to be empty while the precondition of {ARRAY_LIST}.put_i_th states that the provided index (in this case n) should be a valid index.  It should probably be replaced by a call to {ARRAY_LIST}.extend.

Thank you!

Simon
To Reproduce

										
Problem Report Interactions