Manuscript (Case [Issue]20740) _Inbox - isAbstract not working correctly on 64bit

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Manuscript (Case [Issue]20740) _Inbox - isAbstract not working correctly on 64bit

Pharo Issue Tracker
Manuscript Notification
avatar
Bug in Project:  _Inbox: Not Spam  •  You are subscribed to this case
Fix:

OpalEncoderForV3PlusClosures>>markerOrNilFor: compiledMethod
  "What is a marker method?  It is method with body like 
    'self subclassResponsibility' or '^ self subclassResponsibility' 
  used to indicate ('mark') a special property.

  Marker methods compile to bytecode like:

    33 <70> self
    34 <D0> send: <literal 1>
    35 <87> pop
    36 <78> returnSelf

  for the first form, or 

    33 <70> self
    34 <D0> send: <literal 1>
    35 <7C> returnTop

  for the second form."

  | e |
  ((e := compiledMethod endPC) = 36 or: [e = 35]) ifFalse: [^ nil].
  (compiledMethod numLiterals = 3) ifFalse:[^ nil].
  (compiledMethod at: 33) =  16r70 ifFalse:[^ nil].   "push self"
  (compiledMethod at: 34) = 16rD0 ifFalse:[^ nil].    "send <literal 1>"
  "If we reach this point, we have a marker method that sends self <literal 1>"
  ^ compiledMethod literalAt: 1
Priority Priority: 3 – Must Fix Status Status: Work Needed
Assigned To Assigned to: Everyone Milestone Milestone: Later

Go to Case
No longer need updates? Unsubscribe from this case.

Don't want Manuscript notifications anymore? Update your preferences.

Manuscript

_______________________________________________
Pharo-bugtracker mailing list
[hidden email]
https://lists.gforge.inria.fr/mailman/listinfo/pharo-bugtracker