Code Monkey home page Code Monkey logo

plweakcompatibility's Issues

Please add semantic version tags

I’ve recently added <PLWeakCompatibility> to the CocoaPods package manager repo.

CocoaPods is a tool for managing dependencies for OS X and iOS Xcode projects and provides a central repository for iOS/OS X libraries. This makes adding libraries to a project and updating them extremely easy and it will help users to resolve dependencies of the libraries they use.

However, <PLWeakCompatibility> doesn't have any version tags. I’ve updated the 0.0.1 to the current HEAD as version, but a version tag will make dependency resolution much easier.

Semantic version tags (instead of plain commit hashes/revisions) allow for resolution of cross-dependencies.

In case you didn’t know this yet; you can tag the current HEAD as, for instance, version 1.0.0, like so:

$ git tag -a 1.0.0 -m "Tag release 1.0.0"
$ git push --tags

Error when using this library

Hi,
When I copied PLWeakCompatibilityStubs into my project, I got error which show me "Conflicting type for 'objc_loadWeak' and similar Conflicting type for 'objc_storeWeak'".
I wonder how can I solve this error.
Thanks!

Another crash in SwizzledReleaseIMP

Hi, I have a crash in SwizzledReleaseIMP at origIMP(self, _cmd); in iOS 4.3 simulator similar to #1 . However, it is with the current latest version of PLWeakCompatibility.

To reproduce it, take the tests in the PLWeakCompatibility project, and change the PLWeakCompatibilityEmptyTestSubclass class to add a dealloc method as follows:

@implementation PLWeakCompatibilityEmptyTestSubclass
-(void)dealloc {
  id foo = self;
}
@end

It crashes with a
-[PLWeakCompatibilityEmptyTestSubclass release]: unrecognized selector sent to instance exception (which makes little sense).

I am using the latest released Xcode 4.5.2.

I am not sure whether it is a bug with this version of the compiler (I've seen other ARC bugs), or with PLWeakCompatibility.

ARC Issue with Xcode 4.5.2

There's an issue present with PLWeakCompatibilityStubs.m with the Clang/LLVM combo in the latest Xcode 4.5 release (4.5.2)

if (has_mazwr()) {        
    MAZeroingWeakRef *ref = [[MAZWR alloc] initWithTarget: obj];
    *location = (__bridge_retained PLObjectPtr) ref;
    return;
}

The MAZWR alloc/init will fail to compile as the compiler now requires that to be defined with either a __bridge or a bridge retain. I initially chose the simpler __bridge option, as the next line does the appropriate ref retain, but want to make sure that's the proper option and that it gets fixed in mainline here :)

Leak with using weak NSThread in thread

On profiling an app with the following code, running on iOS 4.3 simulator with PLWeakCompatibility, I am getting a leak in the Leaks instrument, saying that the struct TLS (as well as the dictionaries inside it) created in GetTLS are leaked.

Is this a bug with PLWeakCompatibility, or am I doing something wrong?

- (void)foo {
  @autoreleasepool {
    NSThread* __weak myThread = [NSThread currentThread];
    [myThread self];
  }
}

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  [NSThread detachNewThreadSelector:@selector(foo) toTarget:self withObject:nil];
  return YES;
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.