@@ -359,17 +359,18 @@ QList<QgsEllipsoidUtils::EllipsoidDefinition> QgsEllipsoidUtils::definitions()
359
359
PROJ_STRING_LIST codesIt = codes;
360
360
while ( char *code = *codesIt )
361
361
{
362
- if ( PJ *ellipsoid = proj_create_from_database ( context, authority, code, PJ_CATEGORY_ELLIPSOID, 0 , nullptr ) )
362
+ QgsProjUtils::proj_pj_unique_ptr ellipsoid ( proj_create_from_database ( context, authority, code, PJ_CATEGORY_ELLIPSOID, 0 , nullptr ) );
363
+ if ( ellipsoid.get () )
363
364
{
364
365
EllipsoidDefinition def;
365
- QString name = QString ( proj_get_name ( ellipsoid ) );
366
+ QString name = QString ( proj_get_name ( ellipsoid. get () ) );
366
367
def.acronym = QStringLiteral ( " %1:%2" ).arg ( authority, code );
367
368
name.replace ( ' _' , ' ' );
368
369
def.description = QStringLiteral ( " %1 (%2:%3)" ).arg ( name, authority, code );
369
370
370
371
double semiMajor, semiMinor, invFlattening;
371
372
int semiMinorComputed = 0 ;
372
- if ( proj_ellipsoid_get_parameters ( context, ellipsoid, &semiMajor, &semiMinor, &semiMinorComputed, &invFlattening ) )
373
+ if ( proj_ellipsoid_get_parameters ( context, ellipsoid. get () , &semiMajor, &semiMinor, &semiMinorComputed, &invFlattening ) )
373
374
{
374
375
def.parameters .semiMajor = semiMajor;
375
376
def.parameters .semiMinor = semiMinor;
@@ -386,8 +387,6 @@ QList<QgsEllipsoidUtils::EllipsoidDefinition> QgsEllipsoidUtils::definitions()
386
387
def.parameters .valid = false ;
387
388
}
388
389
389
- proj_destroy ( ellipsoid );
390
-
391
390
defs << def;
392
391
sEllipsoidCache .insert ( def.acronym , def.parameters );
393
392
}
0 commit comments