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 authentication 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:  ActionScript Priority:  3 - Low
Status:  Done Privacy:  Public
Assigned to:  Sandro Santilli <strk> Originator Email:  -email is 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 (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).



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


Depends on the following items: None found

Items that depend on this one: None found


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

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

    Only logged-in users can vote.




    Follow 5 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2007-07-18 strk StatusIn Progress => Done
        Open/ClosedOpen => Closed
    2007-07-13 strk StatusNone => In Progress
        Assigned toNone => strk
    2007-07-07 None Attached File- => Added array_cmp_sort.patch, #13267

    Back to the top

    Powered by Savane 3.4