Skip to content

Commit

Permalink
AK: Add StringBuilder::appendff using the new format.
Browse files Browse the repository at this point in the history
StringBuilder::appendf was already used, thus this name. If we some day
replace all usages of printf, we could rename this method.
  • Loading branch information
asynts authored and awesomekling committed Sep 22, 2020
1 parent 4fcdc19 commit e5497a3
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 4 deletions.
5 changes: 4 additions & 1 deletion AK/Format.h
Original file line number Diff line number Diff line change
Expand Up @@ -100,4 +100,7 @@ String format(StringView fmtstr, const Parameters&... parameters)
return Detail::Format::format(fmtstr, formatters);
}

}
template<typename... Parameters>
void StringBuilder::appendff(StringView fmtstr, const Parameters&... parameters) { AK::format(*this, fmtstr, parameters...); }

} // namespace AK
7 changes: 6 additions & 1 deletion AK/StringBuilder.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@

#include <AK/ByteBuffer.h>
#include <AK/Forward.h>
#include <AK/StringView.h>
#include <stdarg.h>

namespace AK {
Expand All @@ -37,7 +38,7 @@ class StringBuilder {
using OutputType = String;

explicit StringBuilder(size_t initial_capacity = 16);
~StringBuilder() {}
~StringBuilder() { }

void append(const StringView&);
void append(const Utf32View&);
Expand All @@ -47,6 +48,10 @@ class StringBuilder {
void appendf(const char*, ...);
void appendvf(const char*, va_list);

// Implemented in <AK/Format.h> to break circular dependency.
template<typename... Parameters>
void appendff(StringView fmtstr, const Parameters&...);

String build() const;
String to_string() const;
ByteBuffer to_byte_buffer() const;
Expand Down
4 changes: 2 additions & 2 deletions Kernel/UserOrKernelBuffer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ String UserOrKernelBuffer::copy_into_string(size_t size) const
return data_copy;
}

return String({ m_buffer, size });
return String(ReadonlyBytes { m_buffer, size });
}

bool UserOrKernelBuffer::write(const void* src, size_t offset, size_t len)
Expand Down Expand Up @@ -80,7 +80,7 @@ bool UserOrKernelBuffer::memset(int value, size_t offset, size_t len)

if (is_user_address(VirtualAddress(m_buffer)))
return memset_user(m_buffer + offset, value, len);

::memset(m_buffer + offset, value, len);
return true;
}
Expand Down

0 comments on commit e5497a3

Please sign in to comment.