From 9eedf3ad45717224128abb75b527e6b7b34e856d Mon Sep 17 00:00:00 2001 From: James Morrow Date: Tue, 5 Jan 2016 19:20:25 -0700 Subject: [PATCH] Fix to Issue #40 Added check if index is in range before using it to index the list of items. --- src/controlP5/DropdownList.java | 36 +++++++++++++++++---------------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/src/controlP5/DropdownList.java b/src/controlP5/DropdownList.java index 4276467..13a87b1 100755 --- a/src/controlP5/DropdownList.java +++ b/src/controlP5/DropdownList.java @@ -127,24 +127,26 @@ public class DropdownList extends Controller< DropdownList > implements ControlL // n += itemRange; /* UP */ int index = ( int ) n + itemIndexOffset; - Map m = items.get( index ); - - switch ( _myType ) { - case ( LIST ): - setValue( index ); - for ( Object o : items ) { - ( ( Map ) o ).put( "state" , false ); + if (index < items.size()) { + Map m = items.get( index ); + + switch ( _myType ) { + case ( LIST ): + setValue( index ); + for ( Object o : items ) { + ( ( Map ) o ).put( "state" , false ); + } + m.put( "state" , !ControlP5.b( m.get( "state" ) ) ); + break; + case ( DROPDOWN ): + setValue( index ); + setOpen( false ); + getCaptionLabel( ).setText( ( m.get( "text" ).toString( ) ) ); + break; + case ( CHECKBOX ): + m.put( "state" , !ControlP5.b( m.get( "state" ) ) ); + break; } - m.put( "state" , !ControlP5.b( m.get( "state" ) ) ); - break; - case ( DROPDOWN ): - setValue( index ); - setOpen( false ); - getCaptionLabel( ).setText( ( m.get( "text" ).toString( ) ) ); - break; - case ( CHECKBOX ): - m.put( "state" , !ControlP5.b( m.get( "state" ) ) ); - break; } }