fix: use super() properly to ensure that these classes are initialised as expected.
// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).// All rights reserved.// This component and the accompanying materials are made available// under the terms of "Eclipse Public License v1.0"// which accompanies this distribution, and is available// at the URL "http://www.eclipse.org/legal/epl-v10.html".//// Initial Contributors:// Nokia Corporation - initial contribution.//// Contributors://// Description:// Implementation of the Class Symbol for the elf2e32 tool// @internalComponent// @released// //#include "pl_symbol.h"/**This constructor sets the symbol members.@internalComponent@released*/Symbol::Symbol(char* aName, SymbolType aCodeDataType, char* aExportName, PLUINT32 aOrd, \ char* aComment , bool aR3Unused, bool aAbsent, PLUINT32 aSz) :\ iSymbolName(aName), iExportName(aExportName),iSymbolType(aCodeDataType),\ iOrdinalNumber(aOrd),iComment(aComment),iAbsent(aAbsent), iR3Unused(aR3Unused), \ iSize (aSz) {}/**This constructor sets the symbol members.@internalComponent@released*/Symbol::Symbol(Symbol& aSymbol, SymbolType aCodeDataType, bool aAbsent) : iExportName(NULL), \ iSymbolType(aCodeDataType),iComment(NULL), iR3Unused(false), iAbsent(aAbsent) { iSymbolName = new char[strlen(aSymbol.SymbolName()) + 1]; strcpy(iSymbolName, aSymbol.SymbolName()); iOrdinalNumber = aSymbol.OrdNum();}/**This copy constructor copies the symbol members from the input symbol.@param aSymbol - The symbol from which the members are to be copied.@internalComponent@released*/Symbol::Symbol(Symbol& aSymbol){ memcpy(this, &aSymbol, sizeof(aSymbol)); iSymbolName = new char[strlen(aSymbol.SymbolName()) + 1]; strcpy(iSymbolName, aSymbol.SymbolName()); if(aSymbol.Comment()) { iComment = new char[strlen(aSymbol.Comment()) + 1]; strcpy(iComment, aSymbol.Comment()); } if(aSymbol.ExportName()) { iExportName = new char[strlen(aSymbol.ExportName()) + 1]; strcpy(iExportName, aSymbol.ExportName()); }}/**This constructor sets the symbol members.@internalComponent@released*/Symbol::Symbol(int symbolStatus,char *name,char *exportName,int ordinalNo,bool r3unused,bool absent,int symbolType,char *comment, PLUINT32 aSz)\ :iSize (aSz){ if(symbolStatus==0) { iSymbolStatus=Matching; } else if(symbolStatus==1) { iSymbolStatus=Missing; } else { iSymbolStatus=New; } iSymbolName=name; iExportName=exportName; iOrdinalNumber=ordinalNo; iR3Unused=r3unused; iAbsent=absent; if(symbolType==0) { iSymbolType=SymbolTypeCode; } else if(symbolType==1) { iSymbolType=SymbolTypeData; } else { iSymbolType=SymbolTypeNotDefined; } iComment=comment;}/**This destructor frees the symbol members.@internalComponent@released*/Symbol::~Symbol(){ delete [] iSymbolName; delete [] iExportName; delete [] iComment;}/**This function sets the symbol name.@param aSymbolName - The symbol name@internalComponent@released*/void Symbol::SetSymbolName(char *aSymbolName) { iSymbolName = new char[strlen(aSymbolName)+1]; strcpy(iSymbolName, aSymbolName);}/**This function compares the symbol for equality.@param aSym - The symbol that is compared with this symbolReturn - It returns true if the 2 symbols are equal.@internalComponent@released*/bool Symbol::operator==(const Symbol* aSym) const { if(strcmp(iSymbolName, aSym->iSymbolName)) return false; if( iSymbolType != aSym->iSymbolType ) return false; return true;}/**This function returns the symbol name.@internalComponent@released*/const char* Symbol::SymbolName() const { return iSymbolName;}/**This function returns the aliased symbol name.@internalComponent@released*/const char* Symbol::ExportName() { return iExportName;}/**This function returns the ordinal number of the symbol.@internalComponent@released*/PLUINT32 Symbol::OrdNum() const { return iOrdinalNumber;}/**This function returns if the symbol is code or a data symbol.@internalComponent@released*/SymbolType Symbol::CodeDataType() { return iSymbolType;}/**This function returns if r3unused is true.@internalComponent@released*/bool Symbol::R3unused() { return iR3Unused;}/**This function returns if the symbol is marked absent in the def file.@internalComponent@released*/bool Symbol::Absent() { return iAbsent;}/**This function sets the symbol to be absent.@param aAbsent - bool value@internalComponent@released*/void Symbol::SetAbsent(bool aAbsent) { iAbsent = aAbsent;}/**This function returns the comment against this def file.@internalComponent@released*/char* Symbol::Comment() { return iComment;}/**This function returns the symbol is a matching/missing/new symbol in the def file.@internalComponent@released*/int Symbol::GetSymbolStatus() { return iSymbolStatus;}/**This function sets the ordinal number for this symbol.@internalComponent@released*/void Symbol::SetOrdinal(PLUINT32 aOrdinalNum) { iOrdinalNumber=aOrdinalNum;}/**This function sets the status of the symbol i.e., whether it is a matching/missing/new symbol.@internalComponent@released*/void Symbol::SetSymbolStatus(SymbolStatus aSymbolStatus) { iSymbolStatus = aSymbolStatus;}/**This function sets the symbol name.@param aSymbolName - Symbol Name@internalComponent@released*/void Symbol::SymbolName(char *aSymbolName){ iSymbolName = aSymbolName;}/**This function sets the export name of the symbol.@param aComment - aExportName@internalComponent@released*/void Symbol::ExportName(char *aExportName){ iExportName = aExportName;}/**This function sets the comment against the symbol.@param aComment - aComment@internalComponent@released*/void Symbol::Comment(char *aComment){ iComment = aComment;}/**This function sets the symbol type if it is Code or Data symbol.@param aType - Symbol Type@internalComponent@released*/void Symbol::CodeDataType(SymbolType aType) { iSymbolType = aType;}/**This function sets if R3Unused is true for this symbol.@param aR3Unused - bool value@internalComponent@released*/void Symbol::R3Unused(bool aR3Unused){ iR3Unused = aR3Unused;}/**This function sets if R3Unused is true for this symbol.@param aSize - size of the symbol@internalComponent@released*/void Symbol::SetSymbolSize(PLUINT32 aSize){ iSize = aSize;}/**This function gets the size of this symbol.@internalComponent@released*/PLUINT32 Symbol::SymbolSize(){ return iSize;}