mirror of
https://github.com/Microsoft/calculator.git
synced 2025-08-22 14:13:30 -07:00
Use C++ new and delete instead of zmalloc/free in conv to allocate/deallocate numbers
This commit is contained in:
parent
7e3d37fc10
commit
dcd6da52cb
1 changed files with 14 additions and 12 deletions
|
@ -158,7 +158,7 @@ void _destroynum( _In_ PNUMBER pnum )
|
||||||
{
|
{
|
||||||
if ( pnum != nullptr)
|
if ( pnum != nullptr)
|
||||||
{
|
{
|
||||||
free( pnum );
|
delete pnum;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -183,7 +183,7 @@ void _destroyrat( _In_ PRAT prat )
|
||||||
{
|
{
|
||||||
destroynum( prat->pp );
|
destroynum( prat->pp );
|
||||||
destroynum( prat->pq );
|
destroynum( prat->pq );
|
||||||
free( prat );
|
delete prat;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -206,13 +206,13 @@ PNUMBER _createnum( _In_ uint32_t size )
|
||||||
PNUMBER pnumret= nullptr;
|
PNUMBER pnumret= nullptr;
|
||||||
uint32_t cbAlloc;
|
uint32_t cbAlloc;
|
||||||
|
|
||||||
// sizeof( MANTTYPE ) is the size of a 'digit'
|
if (SUCCEEDED(Calc_ULongAdd(cbAlloc, sizeof(NUMBER), &cbAlloc)))
|
||||||
if (SUCCEEDED(Calc_ULongAdd(size, 1, &cbAlloc)) &&
|
|
||||||
SUCCEEDED(Calc_ULongMult(cbAlloc, sizeof(MANTTYPE), &cbAlloc)) &&
|
|
||||||
SUCCEEDED(Calc_ULongAdd(cbAlloc, sizeof(NUMBER), &cbAlloc)))
|
|
||||||
{
|
{
|
||||||
pnumret = (PNUMBER)zmalloc( cbAlloc );
|
try
|
||||||
if ( pnumret == nullptr)
|
{
|
||||||
|
pnumret = new NUMBER();
|
||||||
|
}
|
||||||
|
catch (const bad_alloc&)
|
||||||
{
|
{
|
||||||
throw( CALC_E_OUTOFMEMORY );
|
throw( CALC_E_OUTOFMEMORY );
|
||||||
}
|
}
|
||||||
|
@ -246,9 +246,10 @@ PRAT _createrat( void )
|
||||||
{
|
{
|
||||||
PRAT prat= nullptr;
|
PRAT prat= nullptr;
|
||||||
|
|
||||||
prat = (PRAT)zmalloc( sizeof( RAT ) );
|
try {
|
||||||
|
prat = new RAT();
|
||||||
if ( prat == nullptr)
|
}
|
||||||
|
catch (const bad_alloc&)
|
||||||
{
|
{
|
||||||
throw( CALC_E_OUTOFMEMORY );
|
throw( CALC_E_OUTOFMEMORY );
|
||||||
}
|
}
|
||||||
|
@ -862,7 +863,8 @@ PNUMBER i32tonum( int32_t ini32, uint32_t radix)
|
||||||
}
|
}
|
||||||
|
|
||||||
do {
|
do {
|
||||||
*pmant++ = (MANTTYPE)(ini32 % radix);
|
*pmant = (MANTTYPE)(ini32 % radix);
|
||||||
|
++pmant;
|
||||||
ini32 /= radix;
|
ini32 /= radix;
|
||||||
pnumret->cdigit++;
|
pnumret->cdigit++;
|
||||||
} while ( ini32 );
|
} while ( ini32 );
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue