From d5220370b1b6022e274646e0844060cc8470c458 Mon Sep 17 00:00:00 2001 From: Albrecht Schlosser Date: Thu, 3 Jul 2025 22:37:49 +0200 Subject: Remove private class Fl_Int_Vector This class was used in pre-C++11 versions (up to 1.4.x) and is no longer needed. --- src/CMakeLists.txt | 1 - src/Fl_Int_Vector.H | 179 -------------------------------------------------- src/Fl_Int_Vector.cxx | 73 -------------------- 3 files changed, 253 deletions(-) delete mode 100644 src/Fl_Int_Vector.H delete mode 100644 src/Fl_Int_Vector.cxx (limited to 'src') diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index b43794804..d4214502d 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -63,7 +63,6 @@ set(CPPFILES Fl_Input.cxx Fl_Input_.cxx Fl_Input_Choice.cxx - Fl_Int_Vector.cxx Fl_Light_Button.cxx Fl_Menu.cxx Fl_Menu_.cxx diff --git a/src/Fl_Int_Vector.H b/src/Fl_Int_Vector.H deleted file mode 100644 index e80da04e3..000000000 --- a/src/Fl_Int_Vector.H +++ /dev/null @@ -1,179 +0,0 @@ -// -// An STL-ish vector without templates for the Fast Light Tool Kit (FLTK). -// -// Copyright 2002 by Greg Ercolano. -// Copyright 2022-2023 by Bill Spitzak and others. -// -// This library is free software. Distribution and use rights are outlined in -// the file "COPYING" which should have been included with this file. If this -// file is missing or damaged, see the license at: -// -// https://www.fltk.org/COPYING.php -// -// Please see the following page on how to report bugs and issues: -// -// https://www.fltk.org/bugs.php -// - -#ifndef Fl_Int_Vector_H -#define Fl_Int_Vector_H - -/** - \cond DriverDev - \addtogroup DriverDeveloper - \{ - */ - -#include - -/** \file src/Fl_Int_Vector.H - An STL-ish vector implemented without templates. -*/ - -/** - An STL-ish vector without templates. - - Handles dynamic memory management of an integer array, and allows - array elements to be accessed with zero based indexing: v[0], v[1].. - - Common use: - \code - #include - #include "Fl_Int_Vector.H" - int main() { - Fl_Int_Vector v; - - // Create an array of values 11,22,33: - v.push_back(11); // add first element - v.push_back(22); // add second element - v.push_back(33); // add third element - - // Assignment by subscript - v[1] = 222; // changes 2nd element from 22 to 222 - - // Loop through printing the values - for ( unsigned int i=0; i in the next version after 1.4.x. - - Add other std::vector methods like erase(), etc. - - Make memory blocking size flexible, and add related methods like capacity(), reserve(), shrink_to_fit(), etc. - - Add non-std methods that are nevertheless needed, e.g. insert(index,val), delete(index), delete(start, end), swap(a_idx,b_idx) -*/ -class FL_EXPORT Fl_Int_Vector { - int *arr_; - unsigned int size_; - - /** - Initialize internals. - Private: For use internally by the class's ctors only. - */ - void init() { - arr_ = 0; - size_ = 0; - } - void copy(int *newarr, unsigned int newsize); - -public: - /** Create an empty vector of integers. */ - Fl_Int_Vector() { - init(); - } - - ~Fl_Int_Vector(); - - /** Copy constructor. */ - Fl_Int_Vector(Fl_Int_Vector &o) { - init(); - copy(o.arr_, o.size_); - } - - /** - Assignment operator. Similar to the copy constructor, - creates a separate copy of the source array, freeing any - previous contents in the current integer array. - */ - Fl_Int_Vector &operator=(Fl_Int_Vector &o) { - init(); - copy(o.arr_, o.size_); - return *this; - } - - /** - Access the specified integer element at index position \p x. - \warning No range checking is done on \p x, which must be less than size(). - */ - int operator[](int x) const { - return arr_[x]; - } - - /** - Access the specified integer element at index position \p x as a reference. - - This allows assignment by index through the returned reference, e.g. arr[1] = 222; - where arr[1] ends up being a reference to ptr[1], and then 222 is assigned to that ref. - - \warning No range checking is done on \p x, which must be less than size(). - */ - int &operator[](int x) { - return arr_[x]; - } - - /** Return the number of integer elements in the array. */ - unsigned int size() const { - return size_; - } - - void size(unsigned int count); - - /** - Removes the last element the last element and returns its value. - - \warning You must not call pop_back() if the array is empty, i.e. if (size() == 0). - \todo Internals should maybe assert(size_ != 0) - */ - int pop_back() { - int tmp = arr_[size_ - 1]; - size_--; - return tmp; - } - - /** Appends \p val to the array, enlarging the array by one. */ - void push_back(int val) { - unsigned int x = size_; - size(size_ + 1); - arr_[x] = val; - } - - /** - Return the last element in the array. - \warning You must not call back() if the array is empty, i.e. if (size() == 0). - \todo Internals should maybe assert(size_ != 0) - */ - int back() const { - return arr_[size_ - 1]; - } - - /** - Checks if array has no elements. - Same as a test for (size() == 0). - */ - bool empty() const { - return (size_ == 0) ? true : false; - } -}; - -/** -\} -\endcond -*/ - -#endif // Fl_Int_Vector_H diff --git a/src/Fl_Int_Vector.cxx b/src/Fl_Int_Vector.cxx deleted file mode 100644 index 523e4a3c8..000000000 --- a/src/Fl_Int_Vector.cxx +++ /dev/null @@ -1,73 +0,0 @@ -// -// An STL-ish vector without templates for the Fast Light Tool Kit (FLTK). -// -// Copyright 2002 by Greg Ercolano. -// Copyright 2022 by Bill Spitzak and others. -// -// This library is free software. Distribution and use rights are outlined in -// the file "COPYING" which should have been included with this file. If this -// file is missing or damaged, see the license at: -// -// https://www.fltk.org/COPYING.php -// -// Please see the following page on how to report bugs and issues: -// -// https://www.fltk.org/bugs.php -// - -/** - \cond DriverDev - \addtogroup DriverDeveloper - \{ - */ - -#include "Fl_Int_Vector.H" -#include -#include - -/** - Make a copy of another array. - Private: For use internally by the class's copy ctors only. -*/ -void Fl_Int_Vector::copy(int *newarr, unsigned int newsize) { - size(newsize); - memcpy(arr_, newarr, newsize * sizeof(int)); -} - -/** Destructor - frees the internal array and destroys the class. */ -Fl_Int_Vector::~Fl_Int_Vector() { - if (arr_) - free(arr_); -} - -/** - Set the size of the array to \p count. - - Setting size to zero clears the array and frees any memory it used. - - Shrinking truncates the array and frees memory of truncated elements. - Enlarging creates new elements that are zero in value. -*/ -void Fl_Int_Vector::size(unsigned int count) { - if (count == 0) { // zero? special case frees memory - if (arr_) - free(arr_); - arr_ = 0; - size_ = 0; - return; - } - if (count > size_) { // array enlarged? realloc + init new vals to 0 - arr_ = (int *)realloc(arr_, count * sizeof(int)); - while ( size_ < count ) { - arr_[size_++] = 0; - } - return; // leaves with size_ == count - } - // count <= size_? just truncate - size_ = count; -} - -/** -\} -\endcond -*/ -- cgit v1.2.3