patchGnash - The GNU Flash player - Patches: patch #6081, Finish implemention of array.sort...

 
 

You are not allowed to post comments on this tracker with your current authentification level.

patch #6081: Finish implemention of array.sort using AS comparison function

Submitted by:  None
Submitted on:  Sat 07 Jul 2007 09:40:51 PM UTC  
 
Category: ActionScriptPriority: 3 - Low
Status: DonePrivacy: Public
Assigned to: Sandro Santilli <strk>Originator Email: -unavailable-
Open/Closed: Closed

Wed 18 Jul 2007 11:22:00 AM UTC, comment #3:

I postponed working on 'this' as it takes much more thinking.
For now, your patch is in. Thanks.
See task #7093 for the 'this' thing.

Sandro Santilli <strk>
Project MemberIn charge of this item.
Fri 13 Jul 2007 01:15:03 AM UTC, comment #2:

Committed, adding a test about 'this', which is failing in Gnash.
Will track the 'this' issue next.

Yes, calling the function directly should be fine.

Sandro Santilli <strk>
Project MemberIn charge of this item.
Fri 13 Jul 2007 01:09:11 AM UTC, comment #1:

No, there's no way to avoid it currently. We always need a 'this' pointer when we call a function. Try tracing 'this' from within the comparator function to see what it should be pointing at.

Also, what's your name and email-address for the ChangeLog ?

Sandro Santilli <strk>
Project MemberIn charge of this item.
Sat 07 Jul 2007 09:40:51 PM UTC, original submission:

I had a quick go at finishing the array.sort(compareFunction) implementation since most of the work had already been done. I also added a test for it in the array.as (see attached patch).

The patch is a little more complex than I would have liked because I found that I had to pass in an as_object* "fn.this_ptr" to the call_method when invoking the compareFunction (passing in NULL resulted in assert failures). I suspect there might be a way to avoid this.

Also I'm not sure if call_method should be used in preference to the original idea of directly invoking the function on a fn_call object (either works, I leaned toward the call_method approach since it is already used in the code-base for a similar task [see timers.cpp]). If the fn_call approach is used, the stack_offset (last argument) should be set to 1 not 0 (and obviously the as_object* first argument changed from NULL).

Anonymous

 

Attached Files
file #13267:  array_cmp_sort.patch added by None (4kB - text/x-patch)

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -unavailable- added by strk (Posted a comment)
  •  

    Do you think this task is very important?
    If so, you can click here to add your encouragement to it.
    This task has 0 encouragements so far.

    Only logged-in users can vote.

     

    Please enter the title of George Orwell's famous dystopian book (it's a date):

     

     

    Follow 5 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Wed 18 Jul 2007 11:22:00 AM UTCstrkStatusIn Progress=>Done
      Open/ClosedOpen=>Closed
    Fri 13 Jul 2007 01:15:03 AM UTCstrkStatusNone=>In Progress
      Assigned toNone=>strk
    Sat 07 Jul 2007 09:40:51 PM UTCNoneAttached File-=>Added array_cmp_sort.patch, #13267

    Back to the top


    Powered by Savane 3.1-cleanup