Permalink
Switch branches/tags
Nothing to show
Commits on Jan 14, 2013
  1. Detect recursive calls to [self release] and restart the class hierar…

    Michael Ash committed Jan 14, 2013
    …chy walk in that case. Fixes calls to [self release] in -dealloc, and fixes issue #3.
Commits on Jan 10, 2013
  1. Add test to exercise the crash reported in issue #3

    Michael Ash committed Jan 10, 2013
Commits on Dec 27, 2012
Commits on May 31, 2012
  1. Move all TLS accesses out of critical regions since that's not necess…

    mikeash committed May 31, 2012
    …ary. Also remove dealloc's cleaning of the release class table, since that's also now unnecessary.
  2. didDealloc is no longer necessary with TLS; release can always safely…

    mikeash committed May 31, 2012
    … clear its own table
  3. Change the releasing objects table from a set to a bag in order to pr…

    mikeash committed May 31, 2012
    …event one release removing the entry while another release on that same object is still active on another thread
Commits on May 16, 2012
Commits on May 11, 2012
  1. Remove associated object use in favor of thread-local dictionary for …

    mikeash committed May 11, 2012
    …tracking dealloc's last-called class, since I remembered that associated objects basically don't work right on older OSes.
Commits on May 10, 2012
  1. Reimplement built-in zeroing weak reference implementation to use fin…

    mikeash committed May 10, 2012
    …er-grained locking by keeping a list of objects currently being released and having loaders block only when their target object is hazardous, rather than wrapping everything in a big fat mutex.
  2. Add tests for deadlock in dealloc and acquiring a ZWR during release.…

    mikeash committed May 10, 2012
    … The dealloc test does not yet pass, and is written in preparation for code that will allow dealloc to run without the ZWR lock held. The release test does currently pass, and exists to make sure that this scenario continues to work even after the dealloc code is changed.
Commits on Apr 26, 2012
Commits on Apr 2, 2012
  1. correctly handle the case where a weak targeted object does not overr…

    Michael Ash committed Apr 2, 2012
    …ide -release or -dealloc
Commits on Mar 30, 2012
  1. replace associated objects with our own object->value dictionaries be…

    mikeash committed Mar 30, 2012
    …cause associated objects can fail in the face of isa-swizzling on older OSes
    
    git-svn-id: https://src.office.plausiblelabs.com/repo/PLWeakCompatibility/trunk@38 0b19fab4-3b79-e111-ab8d-001cc008e099
  2. Fix build of iOS unit tests.

    landonf committed Mar 30, 2012
    git-svn-id: https://src.office.plausiblelabs.com/repo/PLWeakCompatibility/trunk@36 0b19fab4-3b79-e111-ab8d-001cc008e099
  3. Fix deployment target

    landonf committed Mar 30, 2012
    git-svn-id: https://src.office.plausiblelabs.com/repo/PLWeakCompatibility/trunk@35 0b19fab4-3b79-e111-ab8d-001cc008e099
  4. Add support for testing on iOS devices.

    landonf committed Mar 30, 2012
    git-svn-id: https://src.office.plausiblelabs.com/repo/PLWeakCompatibility/trunk@34 0b19fab4-3b79-e111-ab8d-001cc008e099
  5. add license file, fix up README commit

    mikeash committed Mar 30, 2012
    git-svn-id: https://src.office.plausiblelabs.com/repo/PLWeakCompatibility/trunk@33 0b19fab4-3b79-e111-ab8d-001cc008e099
  6. add README

    mikeash committed Mar 30, 2012
    git-svn-id: https://src.office.plausiblelabs.com/repo/PLWeakCompatibility/trunk@32 0b19fab4-3b79-e111-ab8d-001cc008e099
  7. add a bunch of commenting and inline documentation

    mikeash committed Mar 30, 2012
    git-svn-id: https://src.office.plausiblelabs.com/repo/PLWeakCompatibility/trunk@31 0b19fab4-3b79-e111-ab8d-001cc008e099
  8. fix inheritance problem

    mikeash committed Mar 30, 2012
    git-svn-id: https://src.office.plausiblelabs.com/repo/PLWeakCompatibility/trunk@30 0b19fab4-3b79-e111-ab8d-001cc008e099
  9. refactor tests to test all three possible states (fallthrough, built-…

    mikeash committed Mar 30, 2012
    …in, MAZWR) in a clean manner
    
    git-svn-id: https://src.office.plausiblelabs.com/repo/PLWeakCompatibility/trunk@29 0b19fab4-3b79-e111-ab8d-001cc008e099
  10. turn on MAZWR support by default, add function to check whether the s…

    mikeash committed Mar 30, 2012
    …upport is available
    
    git-svn-id: https://src.office.plausiblelabs.com/repo/PLWeakCompatibility/trunk@28 0b19fab4-3b79-e111-ab8d-001cc008e099
Commits on Mar 29, 2012
  1. add test for the inheritance problem (disabled currently since it cra…

    mikeash committed Mar 29, 2012
    …shes)
    
    git-svn-id: https://src.office.plausiblelabs.com/repo/PLWeakCompatibility/trunk@27 0b19fab4-3b79-e111-ab8d-001cc008e099
  2. Avoid unnecessary objc_autorelease.

    landonf committed Mar 29, 2012
    git-svn-id: https://src.office.plausiblelabs.com/repo/PLWeakCompatibility/trunk@25 0b19fab4-3b79-e111-ab8d-001cc008e099
  3. Include MAZeroingWeakRef in the unit tests.

    landonf committed Mar 29, 2012
    git-svn-id: https://src.office.plausiblelabs.com/repo/PLWeakCompatibility/trunk@24 0b19fab4-3b79-e111-ab8d-001cc008e099
  4. Avoid leaking references if overwriting a weak ref.

    landonf committed Mar 29, 2012
    git-svn-id: https://src.office.plausiblelabs.com/repo/PLWeakCompatibility/trunk@23 0b19fab4-3b79-e111-ab8d-001cc008e099
  5. Use the standard PLObjectPtr type.

    landonf committed Mar 29, 2012
    git-svn-id: https://src.office.plausiblelabs.com/repo/PLWeakCompatibility/trunk@22 0b19fab4-3b79-e111-ab8d-001cc008e099
  6. Fix MAZWR destruction code path.

    landonf committed Mar 29, 2012
    git-svn-id: https://src.office.plausiblelabs.com/repo/PLWeakCompatibility/trunk@21 0b19fab4-3b79-e111-ab8d-001cc008e099
  7. Implement fallback on MAZeroingWeakRef, if available.

    landonf committed Mar 29, 2012
    git-svn-id: https://src.office.plausiblelabs.com/repo/PLWeakCompatibility/trunk@20 0b19fab4-3b79-e111-ab8d-001cc008e099
  8. implement basic ZWR functionality (currently suffers from inheritance…

    mikeash committed Mar 29, 2012
    … problem), tests pass!
    
    git-svn-id: https://src.office.plausiblelabs.com/repo/PLWeakCompatibility/trunk@19 0b19fab4-3b79-e111-ab8d-001cc008e099
  9. implement PLRegisterWeak and call through to an internal function tha…

    mikeash committed Mar 29, 2012
    …t registers to listen for deallocations, not yet implemented
    
    git-svn-id: https://src.office.plausiblelabs.com/repo/PLWeakCompatibility/trunk@18 0b19fab4-3b79-e111-ab8d-001cc008e099