当前位置: 首页>>代码示例>>C++>>正文


C++ ArgumentDecoder::markInvalid方法代码示例

本文整理汇总了C++中ArgumentDecoder::markInvalid方法的典型用法代码示例。如果您正苦于以下问题:C++ ArgumentDecoder::markInvalid方法的具体用法?C++ ArgumentDecoder::markInvalid怎么用?C++ ArgumentDecoder::markInvalid使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在ArgumentDecoder的用法示例。


在下文中一共展示了ArgumentDecoder::markInvalid方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: CString

bool ArgumentCoder<CString>::decode(ArgumentDecoder& decoder, CString& result)
{
    uint32_t length;
    if (!decoder.decode(length))
        return false;

    if (length == std::numeric_limits<uint32_t>::max()) {
        // This is the null string.
        result = CString();
        return true;
    }

    // Before allocating the string, make sure that the decoder buffer is big enough.
    if (!decoder.bufferIsLargeEnoughToContain<char>(length)) {
        decoder.markInvalid();
        return false;
    }

    char* buffer;
    CString string = CString::newUninitialized(length, buffer);
    if (!decoder.decodeFixedLengthData(reinterpret_cast<uint8_t*>(buffer), length, 1))
        return false;

    result = string;
    return true;
}
开发者ID:AndriyKalashnykov,项目名称:webkit,代码行数:26,代码来源:ArgumentCoders.cpp

示例2: decodeStringText

static inline bool decodeStringText(ArgumentDecoder& decoder, uint32_t length, String& result)
{
    // Before allocating the string, make sure that the decoder buffer is big enough.
    if (!decoder.bufferIsLargeEnoughToContain<CharacterType>(length)) {
        decoder.markInvalid();
        return false;
    }
    
    CharacterType* buffer;
    String string = String::createUninitialized(length, buffer);
    if (!decoder.decodeFixedLengthData(reinterpret_cast<uint8_t*>(buffer), length * sizeof(CharacterType), alignof(CharacterType)))
        return false;
    
    result = string;
    return true;    
}
开发者ID:AndriyKalashnykov,项目名称:webkit,代码行数:16,代码来源:ArgumentCoders.cpp


注:本文中的ArgumentDecoder::markInvalid方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。