Matter SDK Coverage Report
Current view: top level - lib/support - FixedBufferAllocator.cpp (source / functions) Coverage Total Hit
Test: SHA:b879ecb8e99e175eea0a293a888bda853da2b19c Lines: 100.0 % 14 14
Test Date: 2025-01-17 19:00:11 Functions: 100.0 % 3 3

            Line data    Source code
       1              : /*
       2              :  *
       3              :  *    Copyright (c) 2021 Project CHIP Authors
       4              :  *
       5              :  *    Licensed under the Apache License, Version 2.0 (the "License");
       6              :  *    you may not use this file except in compliance with the License.
       7              :  *    You may obtain a copy of the License at
       8              :  *
       9              :  *        http://www.apache.org/licenses/LICENSE-2.0
      10              :  *
      11              :  *    Unless required by applicable law or agreed to in writing, software
      12              :  *    distributed under the License is distributed on an "AS IS" BASIS,
      13              :  *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
      14              :  *    See the License for the specific language governing permissions and
      15              :  *    limitations under the License.
      16              :  */
      17              : 
      18              : #include "FixedBufferAllocator.h"
      19              : 
      20              : #include <cstring>
      21              : 
      22              : namespace chip {
      23            4 : uint8_t * FixedBufferAllocator::Alloc(size_t count)
      24              : {
      25            4 :     if (mBegin + count > mEnd)
      26              :     {
      27            1 :         mAnyAllocFailed = true;
      28            1 :         return nullptr;
      29              :     }
      30              : 
      31            3 :     uint8_t * ptr = mBegin;
      32            3 :     mBegin += count;
      33            3 :     return ptr;
      34              : }
      35              : 
      36            4 : uint8_t * FixedBufferAllocator::Clone(const void * data, size_t dataLen)
      37              : {
      38            4 :     uint8_t * ptr = Alloc(dataLen);
      39              : 
      40            4 :     if (ptr != nullptr)
      41              :     {
      42            3 :         memcpy(ptr, data, dataLen);
      43              :     }
      44              : 
      45            4 :     return ptr;
      46              : }
      47              : 
      48            1 : char * FixedBufferAllocator::Clone(const char * str)
      49              : {
      50            1 :     return reinterpret_cast<char *>(Clone(str, strlen(str) + 1));
      51              : }
      52              : } // namespace chip
        

Generated by: LCOV version 2.0-1