X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fthecheat;a=blobdiff_plain;f=Searching.m;fp=Searching.m;h=2c61cb142c87f1d00c115af2677e9c4fb94c6508;hp=0297a84d273b1d275fd1a9f4c7e66ef4d40dc838;hb=556707a7a26ac2dc4d10eff8e4b2abcc893cfce3;hpb=179538478d0db2e5f8f2b50ccb3ff889b474aa01 diff --git a/Searching.m b/Searching.m index 0297a84..2c61cb1 100644 --- a/Searching.m +++ b/Searching.m @@ -1,22 +1,13 @@ -// ********************************************************************** -// The Cheat - A universal game cheater for Mac OS X -// (C) 2003-2005 Chaz McGarvey (BrokenZipper) -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 1, or (at your option) -// any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -// +/* + * The Cheat - The legendary universal game trainer for Mac OS X. + * http://www.dogcows.com/chaz/wiki/TheCheat + * + * Copyright (c) 2003-2010, Charles McGarvey et al. + * + * Distributable under the terms and conditions of the 2-clause BSD + * license; see the file COPYING for the legal text of the license. + */ #import "Searching.h" @@ -70,7 +61,7 @@ int SearchIteration( ThreadedTask *task, unsigned iteration ) SearchContext *context = [task context]; VMRegion region; unsigned hitsPerRegion = 0; - vm_size_t size; + mach_vm_size_t size; void *ptr, *top; TCAddress offset; @@ -171,7 +162,7 @@ int SearchIterationAgain( ThreadedTask *task, unsigned iteration ) SearchContext *context = [task context]; VMRegion region; unsigned hitsPerRegion = 0; - vm_size_t size; + mach_vm_size_t size; void *ptr; unsigned i, top; @@ -199,7 +190,7 @@ int SearchIterationAgain( ThreadedTask *task, unsigned iteration ) top = *context->lastPerRegionPtr; for ( i = 0; i < top; i++ ) { - ptr = context->buffer + *context->lastAddressPtr - VMRegionAddress(region); + ptr = (void *)((TCAddress)context->buffer + *context->lastAddressPtr - VMRegionAddress(region)); char firstValue[context->value->_size]; memcpy(firstValue, ptr, context->value->_size); @@ -278,7 +269,7 @@ int SearchIterationLastValue( ThreadedTask *task, unsigned iteration ) SearchContext *context = [task context]; VMRegion region; unsigned hitsPerRegion = 0; - vm_size_t size; + mach_vm_size_t size; void *ptr; unsigned i, top; @@ -308,7 +299,7 @@ int SearchIterationLastValue( ThreadedTask *task, unsigned iteration ) for ( i = 0; i < top; i++ ) { - ptr = context->buffer + *context->lastAddressPtr - VMRegionAddress(region); + ptr = (void *)((TCAddress)context->buffer + *context->lastAddressPtr - VMRegionAddress(region)); if ( ptr >= context->buffer && context->compareFunc(ptr,context->lastValuePtr) ) { if ( context->numberOfResults >= TCArrayElementCount(context->addresses) ) { TCArrayResize( context->addresses, TCArrayElementCount(context->addresses) + TC_BUFFER_SIZE / sizeof(TCAddress) ); @@ -371,7 +362,7 @@ int SearchStringIteration( ThreadedTask *task, unsigned iteration ) SearchContext *context = [task context]; VMRegion region; unsigned hitsPerRegion = 0; - vm_size_t size; + mach_vm_size_t size; void *ptr, *top, *hit; TCAddress offset; @@ -455,7 +446,7 @@ int SearchStringIterationAgain( ThreadedTask *task, unsigned iteration ) SearchContext *context = [task context]; VMRegion region; unsigned hitsPerRegion = 0; - vm_size_t size; + mach_vm_size_t size; void *ptr; unsigned i, top; @@ -485,9 +476,9 @@ int SearchStringIterationAgain( ThreadedTask *task, unsigned iteration ) for ( i = 0; i < top; i++ ) { - ptr = context->buffer + *context->lastAddressPtr - VMRegionAddress(region); + ptr = (void *)((TCAddress)context->buffer + *context->lastAddressPtr - VMRegionAddress(region)); - if ( ptr >= context->buffer && memcmp( ptr, context->value->_value, MIN(TCArrayElementSize(context->values),context->buffer+VMRegionAddress(region)-ptr) ) == 0 ) { + if ( ptr >= context->buffer && memcmp( ptr, context->value->_value, MIN(TCArrayElementSize(context->values),(TCAddress)context->buffer+VMRegionAddress(region)-(TCAddress)ptr) ) == 0 ) { if ( context->numberOfResults >= TCArrayElementCount(context->addresses) ) { TCArrayResize( context->addresses, TCArrayElementCount(context->addresses) + TC_BUFFER_SIZE / sizeof(TCAddress) ); context->addressPtr = (TCAddress *)TCArrayBytes(context->addresses) + context->numberOfResults; @@ -545,7 +536,7 @@ int SearchStringIterationLastValue( ThreadedTask *task, unsigned iteration ) SearchContext *context = [task context]; VMRegion region; unsigned hitsPerRegion = 0; - vm_size_t size; + mach_vm_size_t size; void *ptr; unsigned i, top; @@ -575,8 +566,8 @@ int SearchStringIterationLastValue( ThreadedTask *task, unsigned iteration ) for ( i = 0; i < top; i++ ) { - ptr = context->buffer + *context->lastAddressPtr - VMRegionAddress(region); - if ( ptr >= context->buffer && memcmp( ptr, context->lastValuePtr, MIN(TCArrayElementSize(context->values),context->buffer+VMRegionAddress(region)-ptr) ) == 0 ) { + ptr = (void *)((TCAddress)context->buffer + *context->lastAddressPtr - VMRegionAddress(region)); + if ( ptr >= context->buffer && memcmp( ptr, context->lastValuePtr, MIN(TCArrayElementSize(context->values),(TCAddress)context->buffer+VMRegionAddress(region)-(TCAddress)ptr) ) == 0 ) { if ( context->numberOfResults >= TCArrayElementCount(context->addresses) ) { TCArrayResize( context->addresses, TCArrayElementCount(context->addresses) + TC_BUFFER_SIZE / sizeof(TCAddress) ); context->addressPtr = (TCAddress *)TCArrayBytes(context->addresses) + context->numberOfResults;