You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by sh...@apache.org on 2012/05/17 00:03:05 UTC
ios commit: Fixed EXC_BAD_ACCESS error in CDVAccelerometer
Updated Branches:
refs/heads/464 221210d4d -> d1e633221
Fixed EXC_BAD_ACCESS error in CDVAccelerometer
Project: http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/commit/d1e63322
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/tree/d1e63322
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/diff/d1e63322
Branch: refs/heads/464
Commit: d1e6332218aba39a11cad3dda24e7a66c4dfa079
Parents: 221210d
Author: Shazron Abdullah <sh...@apache.org>
Authored: Wed May 16 15:02:55 2012 -0700
Committer: Shazron Abdullah <sh...@apache.org>
Committed: Wed May 16 15:02:55 2012 -0700
----------------------------------------------------------------------
CordovaLib/Classes/CDVAccelerometer.h | 4 +--
CordovaLib/Classes/CDVAccelerometer.m | 47 ++++++++++++++++------------
2 files changed, 28 insertions(+), 23 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/blob/d1e63322/CordovaLib/Classes/CDVAccelerometer.h
----------------------------------------------------------------------
diff --git a/CordovaLib/Classes/CDVAccelerometer.h b/CordovaLib/Classes/CDVAccelerometer.h
index dfb6a83..bc125f1 100755
--- a/CordovaLib/Classes/CDVAccelerometer.h
+++ b/CordovaLib/Classes/CDVAccelerometer.h
@@ -24,15 +24,13 @@
@interface CDVAccelerometer : CDVPlugin<UIAccelerometerDelegate>
{
- bool _bIsRunning;
double x;
double y;
double z;
NSTimeInterval timestamp;
- NSMutableArray *accelCallbacks;
- NSMutableDictionary *watchCallbacks;
}
+@property (readonly, assign) BOOL isRunning;
@property (nonatomic, retain) NSMutableArray* accelCallbacks;
@property (nonatomic, retain) NSMutableDictionary* watchCallbacks;
http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/blob/d1e63322/CordovaLib/Classes/CDVAccelerometer.m
----------------------------------------------------------------------
diff --git a/CordovaLib/Classes/CDVAccelerometer.m b/CordovaLib/Classes/CDVAccelerometer.m
index 82e43bf..8f8d95b 100644
--- a/CordovaLib/Classes/CDVAccelerometer.m
+++ b/CordovaLib/Classes/CDVAccelerometer.m
@@ -20,9 +20,15 @@
#import "CDVAccelerometer.h"
+@interface CDVAccelerometer () {
+}
+@property (readwrite, assign) BOOL isRunning;
+@end
+
+
@implementation CDVAccelerometer
-@synthesize accelCallbacks, watchCallbacks;
+@synthesize accelCallbacks, watchCallbacks, isRunning;
// defaults to 100 msec
#define kAccelerometerInterval 100
@@ -42,8 +48,9 @@
y = 0;
z = 0;
timestamp = 0;
- accelCallbacks = nil;
- watchCallbacks = nil;
+ self.accelCallbacks = nil;
+ self.watchCallbacks = nil;
+ self.isRunning = NO;
}
return self;
}
@@ -59,16 +66,16 @@
UIAccelerometer* pAccel = [UIAccelerometer sharedAccelerometer];
// accelerometer expects fractional seconds, but we have msecs
pAccel.updateInterval = desiredFrequency_num / 1000;
- if (!accelCallbacks) {
- accelCallbacks = [NSMutableArray arrayWithCapacity:1];
+ if (!self.accelCallbacks) {
+ self.accelCallbacks = [NSMutableArray arrayWithCapacity:1];
}
if (!watchCallbacks) {
- watchCallbacks = [NSMutableDictionary dictionaryWithCapacity:1];
+ self.watchCallbacks = [NSMutableDictionary dictionaryWithCapacity:1];
}
- if(!_bIsRunning)
+ if(!self.isRunning)
{
pAccel.delegate = self;
- _bIsRunning = YES;
+ self.isRunning = YES;
}
}
@@ -76,7 +83,7 @@
{
UIAccelerometer* theAccelerometer = [UIAccelerometer sharedAccelerometer];
theAccelerometer.delegate = nil;
- _bIsRunning = NO;
+ self.isRunning = NO;
}
/**
@@ -86,14 +93,14 @@
{
NSString* callbackId = [arguments objectAtIndex:0];
- if(!_bIsRunning)
+ if(!self.isRunning)
{
CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_NO_RESULT];
[result setKeepCallback:[NSNumber numberWithBool:YES]];
- if (!accelCallbacks) {
- accelCallbacks = [NSMutableArray arrayWithCapacity:1];
+ if (!self.accelCallbacks) {
+ self.accelCallbacks = [NSMutableArray arrayWithCapacity:1];
}
- [accelCallbacks addObject:callbackId];
+ [self.accelCallbacks addObject:callbackId];
[self start];
[self writeJavascript:[result toSuccessCallbackString:callbackId]];
} else {
@@ -106,14 +113,14 @@
NSString* callbackId = [arguments objectAtIndex:0];
NSString* timerId = [arguments objectAtIndex:1];
- if (!watchCallbacks) {
- watchCallbacks = [NSMutableDictionary dictionaryWithCapacity:1];
+ if (!self.watchCallbacks) {
+ self.watchCallbacks = [NSMutableDictionary dictionaryWithCapacity:1];
}
// add the callbackId into the dictionary so we can call back whenever get data
- [watchCallbacks setObject:callbackId forKey:timerId];
+ [self.watchCallbacks setObject:callbackId forKey:timerId];
- if (!_bIsRunning) {
+ if (!self.isRunning) {
[self start];
}
CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_NO_RESULT];
@@ -124,8 +131,8 @@
{
NSString* callbackId = [arguments objectAtIndex:0];
NSString* timerId = [arguments objectAtIndex:1];
- if (watchCallbacks && [watchCallbacks objectForKey:timerId]) {
- [watchCallbacks removeObjectForKey:timerId];
+ if (self.watchCallbacks && [self.watchCallbacks objectForKey:timerId]) {
+ [self.watchCallbacks removeObjectForKey:timerId];
}
CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK];
NSString* jsString = [result toSuccessCallbackString:callbackId];
@@ -137,7 +144,7 @@
*/
- (void) accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration
{
- if(_bIsRunning)
+ if(self.isRunning)
{
x = acceleration.x;
y = acceleration.y;