Mantis Bugtracker
  

Viewing Issue Advanced Details Jump to Notes ] View Simple ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0007534 [Squeak] Kernel major always 05-18-10 22:11 04-03-11 22:49
Reporter sig View Status public  
Assigned To
Priority normal Resolution fixed Platform
Status closed   OS
Projection none   OS Version
ETA none Fixed in Version 4.2 Product Version 4.1
  Product Build
Summary 0007534: Perform primitive: fails if method having many arguments
Description The perform primitive using the currently active context to push
all of the arguments on it, and then do normal send.

But a sender context may be not be big enough (small frame) to accomodate
all pushed values.
Therefore, for methods with many arguments, a primitive may fail.

The proposed fix is to make sure that Object>>#perform:withArguments:
is using a large stack frame size, so when a primitive 84 fails,
and Object>>#perform:withArguments: will be activated,
there will be enough space to push all arguments on context stack
and retry with primitive 100.


Steps To Reproduce
Additional Information
Attached Files  perform-framesize.1.cs [^] (865 bytes) 05-18-10 22:11

- Relationships

- Notes
(0014079 - 34 - 34 - 34 - 34 - 34 - 34)
leves
04-03-11 22:49

The fix is included in Squeak 4.2.
 

- Issue History
Date Modified Username Field Change
05-18-10 22:11 sig New Issue
05-18-10 22:11 sig Status new => assigned
05-18-10 22:11 sig Assigned To  => KenCausey
05-18-10 22:11 sig File Added: perform-framesize.1.cs
05-18-10 22:54 lewis Issue Monitored: lewis
05-19-10 14:04 KenCausey Assigned To KenCausey =>
05-19-10 14:04 KenCausey Status assigned => new
05-19-10 14:04 KenCausey Category Any => Kernel
04-03-11 22:49 leves Status new => closed
04-03-11 22:49 leves Note Added: 0014079
04-03-11 22:49 leves Resolution open => fixed
04-03-11 22:49 leves Fixed in Version  => 4.2


Mantis 1.0.8[^]
Copyright © 2000 - 2007 Mantis Group
46 total queries executed.
34 unique queries executed.
Powered by Mantis Bugtracker