注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

麦斯·渐行渐远

人无远虑,必有近忧

 
 
 

日志

 
 

《Flash Player 10.1的一个BUG》最新进展(9/16更新)  

2010-08-05 12:03:25|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
最新进展(9/16):
这个bug所在的milestone从flash10.1.x-Salt修改为了flash10.2.x-Spicy(难道flashplayer的codename都是用调料的么。。。),看来这个bug有望在Flash Player 10.2中得到修正。

===============================

6月11日我向Adobe提交了一个关于Flash Player 10.0和Flash Player 10.1行为不一致的Bug:
http://vivimice.blog.163.com/blog/static/161001201051143253725/

在这快两个月的时间里面,bug编号从FP-4711变更为了ASL-89(ASL:ActionScript Language)。在昨天晚上,我收到了Adobe的来信,这个bug被Lars T. Hansen转提交到了Mozilla基金会的Tamarin项目,bug编号变更为Bug 584420,看来Adobe认为这个bug是属于avm2的实现问题(由于avm2的代码已经捐献给了Mozilla)。

另外,6月25日有人也提交了一个类的bug:FP-4869

在ASL-89的最后一个评论中,Lars T. Hansen说:“Escalating - possible injection in 10.1”,意思大概是这个问题变得有点严重了,可能是10.1中的一个注入漏洞。这个漏洞具体是什么呢,在什么情况下会发生注入,后果如何,或许去看看Tamarin的代码会有所收获。

8/17更新:

Steven Johnson描述,这个Bug不仅仅存在于Dictionary中,实际上对于任何Object都有可能存在。他构建了一个简单的Test Case:
   var d = { a:"a", b:"b", c:"c", d:"d"};    for (var o in d)    {       for (var o2 in d) { /*whatever, doesn't matter*/ }       trace("deleting ",o);       delete d[o];    }
之前版本的avm2总是可以正确的完成d中所有键的枚举,但是在FP 10.1中,这个外层循环会提早退出。这个情况比我提供的Test Case要更加容易遇到,因为这里只是在外层循环中对同一个对象进行了一次没有进行任何结构性修改的迭代操作,而外层循环的迭代器仍然发生了错误,这已经和Java中有关迭代器外修改被迭代对象的类似的情况不再类似了。

在接下来的回帖中,Lars T Hansen提到了他倾向于使用比较姑息的方式先修复这个兼容性问题。而Steven Johnson认为这可能会导致代码里面出现丑陋的补丁(而不是一个通用的优美的解决方案)

如果大家对这个bug感兴趣,可以把自己添加到这个bug的cc list中:https://bugzilla.mozilla.org/show_bug.cgi?id=584420,

8/18更新:

目前看来这个问题蔓延到了迭代Array成员了。通过那个简单的Test Case,发现FP10.1在处理Array迭代的时候也存在问题,而且和迭代Dictionary/Object不太一样:
    var a:Array = ["111", "222", "333", "444", "555"];     for (var k1:* in a) {         trace("deleting ", k1);         delete a[k1];     }
考虑这么一种最简单的形式,FP10.0能够给出正确的结果(即删除了5个元素),但是FP10.1却会少输出"deleting 1"这一行。

由于和前面的测试不一样,这次在迭代中没有对被迭代的数组对象进行任何二次迭代操作,因此实际上这反映的是一个和前面不一样的bug。

这个问题我已经作为Bug 584420的评论提交到了Bugzilla@Mozilla。现在Lars T Hansen已经将这个Bug的描述从“Dictionary迭代行为不一致”修改为了“迭代行为不一致”,严重性从normal提升到了major,目标Milestone已经定在了FP10.1.x-Salt(这里salt指的是啥?codename么?),顺便还添加了两个CC(难道是这个Bug的处理人员么)。但愿这个bug能尽早修复

8/24更新:

这个bug终于有人收了,状态从NEW变成了ASSIGNED,指定给了stejohns@adobe.com
  评论这张
 
阅读(537)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017