Re: Get MD5 without crashing
Re: Get MD5 without crashing
- Subject: Re: Get MD5 without crashing
- From: "Jonathan del Strother" <email@hidden>
- Date: Tue, 4 Nov 2008 13:54:52 +0000
Please just refer people to
http://developer.apple.com/documentation/Cocoa/Conceptual/MemoryMgmt/Tasks/MemoryManagementRules.html
when memory management comes up.
And in Gecko's case, 'crypto' certainly does need to be released,
since it's being alloc-inited.
On Tue, Nov 4, 2008 at 1:48 PM, Alex Heinz <email@hidden> wrote:
> The SSCrypto object doesn't need to be released; it isn't being retained,
> and doesn't leave the scope of the function. It will be deallocated when
> control leaves the function.
>
> Alex
>
> On Nov 4, 2008, at 12:09 AM, Roland King wrote:
>
>> well no that would leak since then the crypto object wouldn't get
>> released. Also, I don't have the documentation for SSCrypto but I'd have
>> thought whatever the digest returns is already autoreleased, so releasing it
>> again would be wrong.
>>
>> Question is how are you calling this? Is there an autorelease pool set up
>> somewhere which is actually getting purged? All autorelease is doing is
>> sticking it on the autorelease pool, if nothing cleans up the pool, it'll
>> just hang onto them forever.
>>
>> What crash are you getting, are you getting out of memory or are you
>> getting a crash because you're accessing an already freed object or freeing
>> it twice?
>>
>> Alex Heinz wrote:
>>
>>> You probably want [[[crypto digest:@"MD5"] hexval] autorelease]. This
>>> will add the NSString object to the autorelease pool, instead of the
>>> SSCrypto object, as you are doing now.
>>>
>>> HTH,
>>> Alex
>>>
>>> On Nov 3, 2008, at 9:05 PM, Mr. Gecko wrote:
>>>
>>>> Hello I am trying to MD5 a whole bunch of strings and I choose SSCrypto
>>>> for it, but for some reason, it crashes because of memory. I know it has to
>>>> do with releasing, I haven't found much details on when to use release and
>>>> autorelease; so this is a huge task for me to find out.
>>>> Here is my method I have made.
>>>> - (NSString *)md5:(NSString *)MD5 {
>>>> SSCrypto *crypto = [[SSCrypto alloc] init];
>>>> [crypto setClearTextWithString:MD5];
>>>>
>>>> return [[[crypto autorelease] digest:@"MD5"] hexval];
>>>> }
>>>> if you could point out what I am doing wrong, I would be great full.
>>>>
>>>> Thanks,
>>>> Mr. Gecko
>>>> _______________________________________________
>>>>
>>>> Cocoa-dev mailing list (email@hidden)
>>>>
>>>> Please do not post admin requests or moderator comments to the list.
>>>> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
>>>>
>>>> Help/Unsubscribe/Update your Subscription:
>>>>
>>>>
>>>> This email sent to email@hidden
>>>
>>> _______________________________________________
>>>
>>> Cocoa-dev mailing list (email@hidden)
>>>
>>> Please do not post admin requests or moderator comments to the list.
>>> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
>>>
>>> Help/Unsubscribe/Update your Subscription:
>>>
>>> This email sent to email@hidden
>>
> _______________________________________________
>
> Cocoa-dev mailing list (email@hidden)
>
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
>
> Help/Unsubscribe/Update your Subscription:
>
> This email sent to email@hidden
>
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden