234 |
234 |
235 |newArray oldSize sender| |
235 |newArray oldSize sender| |
236 |
236 |
237 oldSize := self size. |
237 oldSize := self size. |
238 (newSize ~~ oldSize) ifTrue:[ |
238 (newSize ~~ oldSize) ifTrue:[ |
239 "/ |
239 InfoPrinting ifTrue:[ |
240 "/ output a warning - you should rewrite your application |
240 "/ |
241 "/ to use some collection which implements grow: more efficient |
241 "/ output a warning - you should rewrite your application |
242 "/ (i.e. use OrderedCollection instead of Array ..) |
242 "/ to use some collection which implements grow: more efficient |
243 "/ |
243 "/ (i.e. use OrderedCollection instead of Array ..) |
244 'ARRCOLL: Warning: slow grow operation (' infoPrint. |
244 "/ |
245 self class name infoPrint. ') via ' infoPrint. |
245 'ARRCOLL: Warning: slow grow operation (' infoPrint. |
246 sender := thisContext sender. |
246 self class name infoPrint. ') via ' infoPrint. |
247 sender methodPrintString infoPrint. |
247 sender := thisContext sender. |
248 ' from ' infoPrint. sender sender methodPrintString infoPrintNL. |
248 sender methodPrintString infoPrint. |
|
249 ' from ' infoPrint. sender sender methodPrintString infoPrintNL. |
|
250 ]. |
249 |
251 |
250 newArray := self species new:newSize. |
252 newArray := self species new:newSize. |
251 newArray replaceFrom:1 to:(newSize min:oldSize) with:self. |
253 newArray replaceFrom:1 to:(newSize min:oldSize) with:self. |
252 self become:newArray. |
254 self become:newArray. |
253 ] |
255 ] |