Pointer cleanup (#242)

- Made greater use of smart pointers, eliminating many instances of manual memory management
- Do not use pointers at all for many non-polymorphic classes
- Assorted other code cleanup
This commit is contained in:
Jaye Evins
2025-10-31 16:11:28 -04:00
committed by GitHub
parent fd10d88be5
commit 8c8e447336
159 changed files with 3364 additions and 4045 deletions
+15 -8
View File
@@ -18,6 +18,7 @@
* along with gLabels-qt. If not, see <http://www.gnu.org/licenses/>.
*/
#include "Text.h"
#include "Record.h"
@@ -34,7 +35,10 @@ namespace glabels
/// Constructor
///
Text::Text( QChar delimiter, bool line1HasKeys )
: mDelimeter(delimiter), mLine1HasKeys(line1HasKeys), mNFieldsMax(0)
: Merge(),
mDelimeter(delimiter),
mLine1HasKeys(line1HasKeys),
mNFieldsMax(0)
{
}
@@ -44,8 +48,10 @@ namespace glabels
///
Text::Text( const Text* merge )
: Merge( merge ),
mDelimeter(merge->mDelimeter), mLine1HasKeys(merge->mLine1HasKeys),
mKeys(merge->mKeys), mNFieldsMax(merge->mNFieldsMax)
mDelimeter(merge->mDelimeter),
mLine1HasKeys(merge->mLine1HasKeys),
mKeys(merge->mKeys),
mNFieldsMax(merge->mNFieldsMax)
{
}
@@ -115,24 +121,25 @@ namespace glabels
///
/// Read next record
///
Record* Text::readNextRecord()
Record Text::readNextRecord()
{
QStringList values = parseLine();
if ( !values.isEmpty() )
{
auto* record = new Record();
Record record;
int iField = 0;
foreach ( QString value, values )
for ( const auto& value : values )
{
(*record)[ keyFromIndex(iField) ] = value;
record[ keyFromIndex(iField) ] = value;
iField++;
}
mNFieldsMax = std::max( mNFieldsMax, iField );
return record;
}
return nullptr;
return NullRecord();
}