Fix bug 2183 - Clicking a QEMU skin button causes screen flicker on the display area (edit)
/** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).* All rights reserved.** This program is free software: you can redistribute it and/or modify* it under the terms of the GNU Lesser General Public License as published by* the Free Software Foundation, either version 3 of the License, 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 Lesser General Public License for more details.* * You should have received a copy of the GNU Lesser General Public License* along with this program. If not, see <http://www.gnu.org/licenses/>.*/#include "outputfile.h"#include "inputfile.h"#include "filefragment.h"#include "elfsection.h"ElfSection & ElfSection::operator=(const ElfSection & aSection) { iSectionName = aSection.iSectionName; iSectionHdr = aSection.iSectionHdr; iSectionData = aSection.iSectionData->Clone(); iIndex = aSection.iIndex; return *this;}ElfSection::ElfSection(const ElfSection & aSection){ *this = aSection;}ElfSectionRomData::ElfSectionRomData(const ElfSectionRomData & aData) { iOffset = aData.iOffset; iSize = aData.iSize;}ElfSectionRomData * ElfSectionRomData::Clone(){ return new ElfSectionRomData(*this);}ElfSectionElfData::ElfSectionElfData(const ElfSectionElfData & aData) : iSource(aData.iSource){ iOffset = aData.iOffset;}ElfSectionElfData * ElfSectionElfData::Clone(){ return new ElfSectionElfData(*this);}void ElfSectionElfData::AddData(OutputFile & aOutputFile){ iSource.AddData(aOutputFile);}void ElfSectionElfData::GetFileFragmentData(FileFragmentData & aFileFragmentData ){ iSource.GetFileFragmentData(aFileFragmentData);}void ElfSectionElfData::DeleteFileFragmentData(){ iSource.DeleteFileFragmentData(); }size_t ElfSectionElfData::Size(){ return iSource.Size();}size_t ElfSectionElfData::GetOffset(){ return iSource.GetOffset();}ElfSectionFileData::ElfSectionFileData(const ElfSectionFileData & aData) { iOffset = aData.iOffset; iInputFile = aData.iInputFile; iData = aData.iData;}ElfSectionFileData * ElfSectionFileData::Clone(){ return new ElfSectionFileData(*this);}void ElfSectionFileData::GetFileFragmentData(FileFragmentData & aFileFragmentData ){ iData = iInputFile->GetData(); SetFileFragmentData(aFileFragmentData, iInputFile->Size(), (char *)iData);}void ElfSectionFileData::DeleteFileFragmentData(){ if (iData) { char * d = iData; iData = NULL; delete [] d; }}size_t ElfSectionFileData::Size(){ return iInputFile->Size();}ElfSectionNoData::ElfSectionNoData(const ElfSectionNoData & aData) { iOffset = aData.iOffset;}ElfSectionNoData * ElfSectionNoData::Clone(){ return new ElfSectionNoData(*this);}void ElfSectionNoData::GetFileFragmentData(FileFragmentData & aFileFragmentData ){ SetFileFragmentData(aFileFragmentData, 0u, reinterpret_cast<char *>(NULL));}ElfSection::~ElfSection(){ delete iSectionData;}void ElfSection::AddData(OutputFile & aOutputFile){ iSectionData->AddData(aOutputFile); SetSize(iSectionData->Size()); SetOffset(iSectionData->GetOffset());}