Status: Accepted Owner: Torsten....@astares.de New issue 3472 by Torsten....@astares.de: Text selection problem in Pharo-dev 1.2 http://code.google.com/p/pharo/issues/detail?id=3472 - loaded the ConfigurationOfPharo to create a pharo-dev from a core 1.2 - in the welcome workspace evaluate the "ProfStef go" - a new window pops up ("Hello! I'm Professor Stef blah) - run the provided "ProfStef next" from this workspace, the tutorial will change to page (2/27) - now set the cursor behind the provided "ProfStef next." expression and select the text by dragging from right to left -> error: #basicNew: failed Reason: - when selecting the text from right to left a negative size is calculated for the string allocation, see this stack: ByteString class(Object)>>error: Receiver: ByteString Arguments and temporary variables: aString: 'basicNew: failed' Receiver's instance variables: superclass: String methodDict: a MethodDictionary(#asByteArray->(ByteString>>#asByteArray "a Compi...etc... format: 23554 instanceVariables: nil organization: ('accessing' at: at:put: byteAt: byteAt:put: byteSize indexOfAnyO...etc... subclasses: nil name: #ByteString classPool: a Dictionary(#NonAsciiMap->#[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0...etc... sharedPools: nil environment: a SystemDictionary(lots of globals) category: #'Collections-Strings' traitComposition: {} localSelectors: nil ByteString class(Object)>>primitiveFailed: Receiver: ByteString Arguments and temporary variables: selector: #basicNew: Receiver's instance variables: superclass: String methodDict: a MethodDictionary(#asByteArray->(ByteString>>#asByteArray "a Compi...etc... format: 23554 instanceVariables: nil organization: ('accessing' at: at:put: byteAt: byteAt:put: byteSize indexOfAnyO...etc... subclasses: nil name: #ByteString classPool: a Dictionary(#NonAsciiMap->#[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0...etc... sharedPools: nil environment: a SystemDictionary(lots of globals) category: #'Collections-Strings' traitComposition: {} localSelectors: nil ByteString class(Object)>>primitiveFailed Receiver: ByteString Arguments and temporary variables: Receiver's instance variables: superclass: String methodDict: a MethodDictionary(#asByteArray->(ByteString>>#asByteArray "a Compi...etc... format: 23554 instanceVariables: nil organization: ('accessing' at: at:put: byteAt: byteAt:put: byteSize indexOfAnyO...etc... subclasses: nil name: #ByteString classPool: a Dictionary(#NonAsciiMap->#[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0...etc... sharedPools: nil environment: a SystemDictionary(lots of globals) category: #'Collections-Strings' traitComposition: {} localSelectors: nil ByteString class(Behavior)>>basicNew: Receiver: ByteString Arguments and temporary variables: sizeRequested: -1 Receiver's instance variables: superclass: String methodDict: a MethodDictionary(#asByteArray->(ByteString>>#asByteArray "a Compi...etc... format: 23554 instanceVariables: nil organization: ('accessing' at: at:put: byteAt: byteAt:put: byteSize indexOfAnyO...etc... subclasses: nil name: #ByteString classPool: a Dictionary(#NonAsciiMap->#[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0...etc... sharedPools: nil environment: a SystemDictionary(lots of globals) category: #'Collections-Strings' traitComposition: {} localSelectors: nil ByteString class(String class)>>new: Receiver: ByteString Arguments and temporary variables: sizeRequested: -1 Receiver's instance variables: superclass: String methodDict: a MethodDictionary(#asByteArray->(ByteString>>#asByteArray "a Compi...etc... format: 23554 instanceVariables: nil organization: ('accessing' at: at:put: byteAt: byteAt:put: byteSize indexOfAnyO...etc... subclasses: nil name: #ByteString classPool: a Dictionary(#NonAsciiMap->#[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0...etc... sharedPools: nil environment: a SystemDictionary(lots of globals) category: #'Collections-Strings' traitComposition: {} localSelectors: nil ByteString(SequenceableCollection)>>copyFrom:to: Receiver: '"Now you''re a Do It master ! Let''s talk about printing. It''s a Do It which prints the ...etc... Arguments and temporary variables: start: 550 stop: 548 newSize: -1 Receiver's instance variables: '"Now you''re a Do It master ! Let''s talk about printing. It''s a Do It which prints the ...etc... Text>>copyFrom:to: Receiver: a Text for '"Now you''re a Do It master ! Let''s talk about printing. It''s a Do It which ...etc... Arguments and temporary variables: start: 550 stop: 563 realStart: 550 realStop: 548 Receiver's instance variables: string: '"Now you''re a Do It master ! Let''s talk about printing. It''s a Do I...etc... runs: a RunArray runs: #(212 2 1 1 1 1 1 1 2 166 2 4 1 5 1 2 4 1 3 1 2 79 2 14 ...etc... SmalltalkEditor(TextEditor)>>selection Receiver: a SmalltalkEditor Arguments and temporary variables: Receiver's instance variables: morph: a TextMorphForEditView(1029177344) selectionShowing: true model: a LessonView editingState: a SmalltalkEditingState Compiler>>evaluate:in:to:notifying:ifFail:logged: Receiver: a Compiler Arguments and temporary variables: textOrStream: a ReadWriteStream '"Cool ! (I like to say Cooool :) ). You''ve ju...etc... aContext: nil receiver: nil aRequestor: a SmalltalkEditor failBlock: [FakeClassPool adopt: nil. ^ #failedDoit] logFlag: true methodNode: DoIt ^ ProfStef next method: (UndefinedObject>>#DoIt "a CompiledMethod(687603712)") value: a LessonView toLog: nil itsSelection: nil itsSelectionString: nil Receiver's instance variables: sourceStream: a ReadWriteStream '"Cool ! (I like to say Cooool :) ). You''ve ju...etc... requestor: a SmalltalkEditor class: UndefinedObject category: nil context: nil parser: a Parser [rcvr class evaluatorClass new evaluate: self selectionForDoitAsStream in: ctxt to: rcvr notifying: self ifFail: [FakeClassPool adopt: nil. ^ #failedDoit] logged: true] in SmalltalkEditor>>evaluateSelection Receiver: a SmalltalkEditor Arguments and temporary variables: rcvr: nil ctxt: nil Receiver's instance variables: morph: a TextMorphForEditView(1029177344) selectionShowing: true model: a LessonView editingState: a SmalltalkEditingState BlockClosure>>on:do: Receiver: [rcvr class evaluatorClass new evaluate: self selectionForDoitAsStream in: ctxt to: ...etc... Arguments and temporary variables: exception: OutOfScopeNotification handlerAction: [:ex | ex resume: true] handlerActive: true Receiver's instance variables: outerContext: SmalltalkEditor>>evaluateSelection startpc: 116 numArgs: 0 SmalltalkEditor>>evaluateSelection Receiver: a SmalltalkEditor Arguments and temporary variables: result: nil rcvr: nil ctxt: nil Receiver's instance variables: morph: a TextMorphForEditView(1029177344) selectionShowing: true model: a LessonView editingState: a SmalltalkEditingState SmalltalkEditor>>doIt Receiver: a SmalltalkEditor Arguments and temporary variables: Receiver's instance variables: morph: a TextMorphForEditView(1029177344) selectionShowing: true model: a LessonView editingState: a SmalltalkEditingState