Changeset 73853 in webkit


Ignore:
Timestamp:
Dec 11, 2010 4:48:50 AM (13 years ago)
Author:
Patrick Gansterer
Message:

2010-12-11 Patrick Gansterer <Patrick Gansterer>

Reviewed by Darin Adler.

Add an overload to makeString for Vector<char>
https://bugs.webkit.org/show_bug.cgi?id=50123

Also cleanup StringTypeAdapter.

  • wtf/text/StringConcatenate.h:

2010-12-11 Patrick Gansterer <Patrick Gansterer>

Reviewed by Darin Adler.

Add an overload to makeString for Vector<char>
https://bugs.webkit.org/show_bug.cgi?id=50123

This also contains a segfault fix for ImageBuffer::toDataURL of the Haiku port.

  • platform/graphics/cg/ImageBufferCG.cpp: (WebCore::ImageBuffer::toDataURL):
  • platform/graphics/gtk/ImageBufferGtk.cpp: (WebCore::ImageBuffer::toDataURL):
  • platform/graphics/haiku/ImageBufferHaiku.cpp: (WebCore::ImageBuffer::toDataURL):
  • platform/graphics/skia/ImageBufferSkia.cpp: (WebCore::ImageBuffer::toDataURL):
Location:
trunk
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/ChangeLog

    r73842 r73853  
     12010-12-11  Patrick Gansterer  <paroga@webkit.org>
     2
     3        Reviewed by Darin Adler.
     4
     5        Add an overload to makeString for Vector<char>
     6        https://bugs.webkit.org/show_bug.cgi?id=50123
     7
     8        Also cleanup StringTypeAdapter.
     9
     10        * wtf/text/StringConcatenate.h:
     11
    1122010-12-10  Siddharth Mathur  <siddharth.mathur@nokia.com>
    213
  • trunk/JavaScriptCore/wtf/text/StringConcatenate.h

    r69850 r73853  
    6969public:
    7070    StringTypeAdapter<char*>(char* buffer)
    71         : m_buffer((unsigned char*)buffer)
     71        : m_buffer(buffer)
    7272        , m_length(strlen(buffer))
    7373    {
     
    7878    void writeTo(UChar* destination)
    7979    {
    80         for (unsigned i = 0; i < m_length; ++i)
    81             destination[i] = m_buffer[i];
    82     }
    83 
    84 private:
    85     const unsigned char* m_buffer;
     80        for (unsigned i = 0; i < m_length; ++i) {
     81            unsigned char c = m_buffer[i];
     82            destination[i] = c;
     83        }
     84    }
     85
     86private:
     87    const char* m_buffer;
    8688    unsigned m_length;
    8789};
     
    9193public:
    9294    StringTypeAdapter<const char*>(const char* buffer)
    93         : m_buffer((unsigned char*)buffer)
     95        : m_buffer(buffer)
    9496        , m_length(strlen(buffer))
    9597    {
     
    100102    void writeTo(UChar* destination)
    101103    {
    102         for (unsigned i = 0; i < m_length; ++i)
    103             destination[i] = m_buffer[i];
    104     }
    105 
    106 private:
    107     const unsigned char* m_buffer;
     104        for (unsigned i = 0; i < m_length; ++i) {
     105            unsigned char c = m_buffer[i];
     106            destination[i] = c;
     107        }
     108    }
     109
     110private:
     111    const char* m_buffer;
    108112    unsigned m_length;
    109113};
    110114
    111115template<>
     116class StringTypeAdapter<Vector<char> > {
     117public:
     118    StringTypeAdapter<Vector<char> >(const Vector<char>& buffer)
     119        : m_buffer(buffer)
     120    {
     121    }
     122
     123    size_t length() { return m_buffer.size(); }
     124
     125    void writeTo(UChar* destination)
     126    {
     127        for (size_t i = 0; i < m_buffer.size(); ++i) {
     128            unsigned char c = m_buffer[i];
     129            destination[i] = c;
     130        }
     131    }
     132
     133private:
     134    const Vector<char>& m_buffer;
     135};
     136
     137template<>
    112138class StringTypeAdapter<String> {
    113139public:
    114     StringTypeAdapter<String>(String& string)
    115         : m_data(string.characters())
    116         , m_length(string.length())
    117     {
    118     }
    119 
    120     unsigned length() { return m_length; }
     140    StringTypeAdapter<String>(const String& string)
     141        : m_buffer(string)
     142    {
     143    }
     144
     145    unsigned length() { return m_buffer.length(); }
    121146
    122147    void writeTo(UChar* destination)
    123148    {
    124         for (unsigned i = 0; i < m_length; ++i)
    125             destination[i] = m_data[i];
    126     }
    127 
    128 private:
    129     const UChar* m_data;
    130     unsigned m_length;
     149        const UChar* data = m_buffer.characters();
     150        unsigned length = m_buffer.length();
     151        for (unsigned i = 0; i < length; ++i)
     152            destination[i] = data[i];
     153    }
     154
     155private:
     156    const String& m_buffer;
    131157};
    132158
  • trunk/WebCore/ChangeLog

    r73844 r73853  
     12010-12-11  Patrick Gansterer  <paroga@webkit.org>
     2
     3        Reviewed by Darin Adler.
     4
     5        Add an overload to makeString for Vector<char>
     6        https://bugs.webkit.org/show_bug.cgi?id=50123
     7
     8        This also contains a segfault fix for ImageBuffer::toDataURL of the Haiku port.
     9
     10        * platform/graphics/cg/ImageBufferCG.cpp:
     11        (WebCore::ImageBuffer::toDataURL):
     12        * platform/graphics/gtk/ImageBufferGtk.cpp:
     13        (WebCore::ImageBuffer::toDataURL):
     14        * platform/graphics/haiku/ImageBufferHaiku.cpp:
     15        (WebCore::ImageBuffer::toDataURL):
     16        * platform/graphics/skia/ImageBufferSkia.cpp:
     17        (WebCore::ImageBuffer::toDataURL):
     18
    1192010-12-10  Alexey Proskuryakov  <ap@apple.com>
    220
  • trunk/WebCore/platform/graphics/cg/ImageBufferCG.cpp

    r70143 r73853  
    362362    Vector<char> out;
    363363    base64Encode(reinterpret_cast<const char*>(CFDataGetBytePtr(data.get())), CFDataGetLength(data.get()), out);
    364     out.append('\0');
    365 
    366     return makeString("data:", mimeType, ";base64,", out.data());
     364
     365    return makeString("data:", mimeType, ";base64,", out);
    367366}
    368367
  • trunk/WebCore/platform/graphics/gtk/ImageBufferGtk.cpp

    r69798 r73853  
    6767    Vector<char> out;
    6868    base64Encode(reinterpret_cast<const char*>(buffer.get()), bufferSize, out);
    69     out.append('\0');
    7069
    71     return makeString("data:", mimeType, ";base64,", out.data());
     70    return makeString("data:", mimeType, ";base64,", out);
    7271}
    7372
  • trunk/WebCore/platform/graphics/haiku/ImageBufferHaiku.cpp

    r69798 r73853  
    369369                 translatedStream.BufferLength(), encodedBuffer);
    370370
    371     return makeString("data:", mimeType, ";base64,", encodedBuffer.data());
     371    return makeString("data:", mimeType, ";base64,", encodedBuffer);
    372372}
    373373
  • trunk/WebCore/platform/graphics/skia/ImageBufferSkia.cpp

    r73173 r73853  
    340340    Vector<char> base64Data;
    341341    base64Encode(*reinterpret_cast<Vector<char>*>(&encodedImage), base64Data);
    342     base64Data.append('\0');
    343 
    344     return makeString("data:", mimeType, ";base64,", base64Data.data());
     342
     343    return makeString("data:", mimeType, ";base64,", base64Data);
    345344}
    346345
Note: See TracChangeset for help on using the changeset viewer.