summaryrefslogtreecommitdiffstats
path: root/thirdparty/thorvg/src/lib/tvgArray.h
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2023-09-18 14:49:04 +0200
committerRémi Verschelde <rverschelde@gmail.com>2023-09-26 22:43:44 +0200
commit81949c2cd23e07db9a078b2206b3e43847e051b9 (patch)
treefc5f074b9563de0b2fc49fc338a39e863040b6c6 /thirdparty/thorvg/src/lib/tvgArray.h
parentb905959f4382020b424fa093c380e163a7a7f404 (diff)
downloadredot-engine-81949c2cd23e07db9a078b2206b3e43847e051b9.tar.gz
thorvg: Update to 0.10.7
Fixes #81618.
Diffstat (limited to 'thirdparty/thorvg/src/lib/tvgArray.h')
-rw-r--r--thirdparty/thorvg/src/lib/tvgArray.h128
1 files changed, 0 insertions, 128 deletions
diff --git a/thirdparty/thorvg/src/lib/tvgArray.h b/thirdparty/thorvg/src/lib/tvgArray.h
deleted file mode 100644
index 0e8aef3071..0000000000
--- a/thirdparty/thorvg/src/lib/tvgArray.h
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Copyright (c) 2020 - 2023 the ThorVG project. All rights reserved.
-
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
-
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
-
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-#ifndef _TVG_ARRAY_H_
-#define _TVG_ARRAY_H_
-
-#include <memory.h>
-
-namespace tvg
-{
-
-template<class T>
-struct Array
-{
- T* data = nullptr;
- uint32_t count = 0;
- uint32_t reserved = 0;
-
- Array(){}
-
- Array(const Array& rhs)
- {
- reset();
- *this = rhs;
- }
-
- void push(T element)
- {
- if (count + 1 > reserved) {
- reserved = count + (count + 2) / 2;
- data = static_cast<T*>(realloc(data, sizeof(T) * reserved));
- }
- data[count++] = element;
- }
-
- void push(Array<T>& rhs)
- {
- grow(rhs.count);
- memcpy(data + count, rhs.data, rhs.count * sizeof(T));
- count += rhs.count;
- }
-
- bool reserve(uint32_t size)
- {
- if (size > reserved) {
- reserved = size;
- data = static_cast<T*>(realloc(data, sizeof(T) * reserved));
- }
- return true;
- }
-
- bool grow(uint32_t size)
- {
- return reserve(count + size);
- }
-
- T* end() const
- {
- return data + count;
- }
-
- T& last()
- {
- return data[count - 1];
- }
-
- T& first()
- {
- return data[0];
- }
-
- void pop()
- {
- if (count > 0) --count;
- }
-
- void reset()
- {
- free(data);
- data = nullptr;
- count = reserved = 0;
- }
-
- void clear()
- {
- count = 0;
- }
-
- bool empty() const
- {
- return count == 0;
- }
-
- void operator=(const Array& rhs)
- {
- reserve(rhs.count);
- if (rhs.count > 0) memcpy(data, rhs.data, sizeof(T) * rhs.count);
- count = rhs.count;
- }
-
- ~Array()
- {
- free(data);
- }
-};
-
-}
-
-#endif //_TVG_ARRAY_H_