valgrind fixes
This commit is contained in:
parent
f8041c2bfa
commit
5c06c81029
24
Buffer.cc
24
Buffer.cc
|
@ -5,6 +5,7 @@
|
||||||
#include <cassert>
|
#include <cassert>
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
#include "Buffer.h"
|
#include "Buffer.h"
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
namespace klib {
|
namespace klib {
|
||||||
|
|
||||||
|
@ -18,7 +19,9 @@ nearestPower(size_t x)
|
||||||
{
|
{
|
||||||
if (x == 0) {
|
if (x == 0) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
};
|
||||||
|
|
||||||
|
std::cout << "x -> ";
|
||||||
|
|
||||||
x--;
|
x--;
|
||||||
|
|
||||||
|
@ -29,6 +32,8 @@ nearestPower(size_t x)
|
||||||
x |= x >> 16;
|
x |= x >> 16;
|
||||||
x |= x >> 32;
|
x |= x >> 32;
|
||||||
|
|
||||||
|
std::cout << x + 1 << std::endl;
|
||||||
|
|
||||||
return x+1;
|
return x+1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -170,6 +175,9 @@ Buffer::Trim()
|
||||||
void
|
void
|
||||||
Buffer::Clear()
|
Buffer::Clear()
|
||||||
{
|
{
|
||||||
|
if (this->length == 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
memset(this->contents, 0, this->length);
|
memset(this->contents, 0, this->length);
|
||||||
this->length = 0;
|
this->length = 0;
|
||||||
}
|
}
|
||||||
|
@ -179,7 +187,13 @@ Buffer::Reclaim()
|
||||||
{
|
{
|
||||||
this->Clear();
|
this->Clear();
|
||||||
|
|
||||||
|
if (this->contents == nullptr) {
|
||||||
|
assert(this->length == 0);
|
||||||
|
assert(this->capacity == 0);
|
||||||
|
return;
|
||||||
|
}
|
||||||
delete this->contents;
|
delete this->contents;
|
||||||
|
this->contents = nullptr;
|
||||||
this->capacity = 0;
|
this->capacity = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -216,11 +230,11 @@ Buffer::shiftRight(size_t offset, size_t delta)
|
||||||
bool
|
bool
|
||||||
Buffer::shiftLeft(size_t offset, size_t delta)
|
Buffer::shiftLeft(size_t offset, size_t delta)
|
||||||
{
|
{
|
||||||
auto resized = false;
|
// for (size_t i = offset; i < this->length; i++) {
|
||||||
|
// this->contents[i] = this->contents[i+delta];
|
||||||
|
// }
|
||||||
|
|
||||||
for (size_t i = offset; i < this->length; i++) {
|
memmove(this->contents+offset, this->contents+(offset+delta), this->length);
|
||||||
this->contents[i] = this->contents[i+delta];
|
|
||||||
}
|
|
||||||
|
|
||||||
return this->Trim() != 0;
|
return this->Trim() != 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,6 +24,12 @@ main()
|
||||||
buffer.Append("and now for something completely different...");
|
buffer.Append("and now for something completely different...");
|
||||||
|
|
||||||
std::cout << buffer.Contents() << std::endl;
|
std::cout << buffer.Contents() << std::endl;
|
||||||
|
std::cout << "Length: " << buffer.Length() << ", capacity " << buffer.Capacity() << std::endl;
|
||||||
|
buffer.Resize(128);
|
||||||
|
std::cout << "Length: " << buffer.Length() << ", capacity " << buffer.Capacity() << std::endl;
|
||||||
|
buffer.Trim();
|
||||||
|
std::cout << "Length: " << buffer.Length() << ", capacity " << buffer.Capacity() << std::endl;
|
||||||
|
|
||||||
return 0;
|
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue