1/** 2 * Copyright (C) 2011 Nokia Inc. All rights reserved. 3 * 4 * This library is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU Library General Public 6 * License as published by the Free Software Foundation; either 7 * version 2 of the License, or (at your option) any later version. 8 * 9 * This library is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 * Library General Public License for more details. 13 * 14 * You should have received a copy of the GNU Library General Public License 15 * along with this library; see the file COPYING.LIB. If not, write to 16 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 * Boston, MA 02110-1301, USA. 18 * 19 */ 20 21#include "config.h" 22#include "QuotesData.h" 23 24namespace WebCore { 25 26QuotesData* QuotesData::create(int stringCount) 27{ 28 char* tmp = new char[sizeof(QuotesData)+sizeof(String)*stringCount]; 29 if (!tmp) 30 return 0; 31 new (tmp) QuotesData(stringCount); 32 for (int i = 0; i < stringCount; ++i) 33 new (tmp +sizeof(QuotesData) + sizeof(String)*i) String(); 34 return reinterpret_cast<QuotesData*>(tmp); 35} 36 37bool QuotesData::operator==(const QuotesData& other) const 38{ 39 if (this == &other) 40 return true; 41 if (!&other || !this) 42 return false; 43 if (length != other.length) 44 return false; 45 const String* myData = data(); 46 const String* otherData = other.data(); 47 for (int i = length-1; i >= 0; --i) 48 if (myData[i] != otherData[i]) 49 return false; 50 return true; 51} 52 53QuotesData::~QuotesData() 54{ 55 String* p = data(); 56 for (int i = 0; i < length; ++i) 57 p[i].~String(); 58} 59 60} // namespace WebCore 61