BoundChecks.cpp 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. 
  2. // zlib open source license
  3. //
  4. // Copyright (c) 2019 David Forsgren Piuva
  5. //
  6. // This software is provided 'as-is', without any express or implied
  7. // warranty. In no event will the authors be held liable for any damages
  8. // arising from the use of this software.
  9. //
  10. // Permission is granted to anyone to use this software for any purpose,
  11. // including commercial applications, and to alter it and redistribute it
  12. // freely, subject to the following restrictions:
  13. //
  14. // 1. The origin of this software must not be misrepresented; you must not
  15. // claim that you wrote the original software. If you use this software
  16. // in a product, an acknowledgment in the product documentation would be
  17. // appreciated but is not required.
  18. //
  19. // 2. Altered source versions must be plainly marked as such, and must not be
  20. // misrepresented as being the original software.
  21. //
  22. // 3. This notice may not be removed or altered from any source
  23. // distribution.
  24. #include "../api/stringAPI.h"
  25. namespace dsr {
  26. void nonZeroLengthCheck(int64_t length, const char* property) {
  27. if (length <= 0) {
  28. throwError(property, " may not be zero!\n");
  29. }
  30. }
  31. void baseZeroBoundCheck(int64_t index, int64_t length, const char* property) {
  32. if (index < 0 || index >= length) {
  33. throwError(property, " ", index, " is out of bound 0..", (length - 1), "!\n");
  34. }
  35. }
  36. }