Index: src/OFMD5Hash.m ================================================================== --- src/OFMD5Hash.m +++ src/OFMD5Hash.m @@ -136,10 +136,17 @@ [self OF_resetState]; return self; } + +- (void)dealloc +{ + [self reset]; + + [super dealloc]; +} - copy { OFMD5Hash *copy = [[OFMD5Hash alloc] init]; Index: src/OFRIPEMD160Hash.m ================================================================== --- src/OFRIPEMD160Hash.m +++ src/OFRIPEMD160Hash.m @@ -150,10 +150,17 @@ [self OF_resetState]; return self; } + +- (void)dealloc +{ + [self reset]; + + [super dealloc]; +} - copy { OFRIPEMD160Hash *copy = [[OFRIPEMD160Hash alloc] init]; Index: src/OFSHA1Hash.m ================================================================== --- src/OFSHA1Hash.m +++ src/OFSHA1Hash.m @@ -110,10 +110,17 @@ [self OF_resetState]; return self; } + +- (void)dealloc +{ + [self reset]; + + [super dealloc]; +} - copy { OFSHA1Hash *copy = [[OFSHA1Hash alloc] init]; Index: src/OFSHA224Or256Hash.m ================================================================== --- src/OFSHA224Or256Hash.m +++ src/OFSHA224Or256Hash.m @@ -142,10 +142,17 @@ @throw e; } return self; } + +- (void)dealloc +{ + [self reset]; + + [super dealloc]; +} - copy { OFSHA224Or256Hash *copy = [[[self class] alloc] init]; Index: src/OFSHA384Or512Hash.m ================================================================== --- src/OFSHA384Or512Hash.m +++ src/OFSHA384Or512Hash.m @@ -153,10 +153,17 @@ @throw e; } return self; } + +- (void)dealloc +{ + [self reset]; + + [super dealloc]; +} - copy { OFSHA384Or512Hash *copy = [[[self class] alloc] init]; @@ -226,11 +233,11 @@ } - (void)reset { [self OF_resetState]; - memset(&_bits, 0, sizeof(_bits)); + memset(_bits, 0, sizeof(_bits)); memset(&_buffer, 0, sizeof(_buffer)); _bufferLength = 0; _calculated = false; }