I had to find all window-spec methods, which defined a maximum window size
(which, by the way, is a bad thing to specify, and the task was to remove those).
The following script did the job of finding them:
actually by second thought, the following script does the same and is much easier to understand:
|sel l|
l := List new.
sel := #windowSpec.
(Smalltalk allImplementorsOf:sel) do:[:cls |
|mthd specArray spec|
mthd := cls compiledMethodAt:sel.
(mthd hasResource:#canvas) ifTrue:[
specArray := mthd valueWithReceiver:nil arguments:nil.
spec := specArray decodeAsLiteralArray.
spec window max notNil ifTrue:[
l add:mthd
].
]
].
SystemBrowser browseMethods:l.
SystemBrowser
browseMethodsWhere:[:mthd |
mthd selector == #windowSpec
and:[ (mthd hasResource:#canvas)
and:[ |specArray spec|
specArray := mthd valueWithReceiver:nil arguments:nil.
spec := specArray decodeAsLiteralArray.
spec window max notNil ]]
]
title:'Specs with max-window size'.