Skip to content

Commit

Permalink
Sprinkle use of AK::Vector in various places.
Browse files Browse the repository at this point in the history
Some of these are less helpful than others. Avoiding a bunch of mallocs
in the event loop wakeup code is definitely nice.
  • Loading branch information
awesomekling committed Apr 20, 2019
1 parent 7faf8fa commit 5eedb22
Show file tree
Hide file tree
Showing 17 changed files with 53 additions and 50 deletions.
1 change: 1 addition & 0 deletions Applications/FileManager/DirectoryModel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ int thumbnail_thread(void* model_ptr)
Vector<String> to_generate;
{
LOCKER(thumbnail_cache().lock());
to_generate.ensure_capacity(thumbnail_cache().resource().size());
for (auto& it : thumbnail_cache().resource()) {
if (it.value)
continue;
Expand Down
6 changes: 3 additions & 3 deletions Applications/IRCClient/IRCClient.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -87,9 +87,9 @@ void IRCClient::receive_from_server()
void IRCClient::process_line(ByteBuffer&& line)
{
Message msg;
Vector<char> prefix;
Vector<char> command;
Vector<char> current_parameter;
Vector<char, 32> prefix;
Vector<char, 32> command;
Vector<char, 256> current_parameter;
enum {
Start,
InPrefix,
Expand Down
2 changes: 1 addition & 1 deletion Applications/ProcessManager/ProcessModel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,7 @@ void ProcessModel::update()
}

m_pids.clear();
Vector<pid_t> pids_to_remove;
Vector<pid_t, 16> pids_to_remove;
for (auto& it : m_processes) {
if (!live_pids.contains(it.key)) {
pids_to_remove.append(it.key);
Expand Down
34 changes: 17 additions & 17 deletions Applications/Terminal/Terminal.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ static inline Color lookup_color(unsigned color)
return Color::from_rgb(xterm_colors[color]);
}

void Terminal::escape$m(const Vector<unsigned>& params)
void Terminal::escape$m(const ParamVector& params)
{
if (params.size() == 3 && params[1] == 5) {
if (params[0] == 38) {
Expand Down Expand Up @@ -183,25 +183,25 @@ void Terminal::escape$m(const Vector<unsigned>& params)
}
}

void Terminal::escape$s(const Vector<unsigned>&)
void Terminal::escape$s(const ParamVector&)
{
m_saved_cursor_row = m_cursor_row;
m_saved_cursor_column = m_cursor_column;
}

void Terminal::escape$u(const Vector<unsigned>&)
void Terminal::escape$u(const ParamVector&)
{
set_cursor(m_saved_cursor_row, m_saved_cursor_column);
}

void Terminal::escape$t(const Vector<unsigned>& params)
void Terminal::escape$t(const ParamVector& params)
{
if (params.size() < 1)
return;
dbgprintf("FIXME: escape$t: Ps: %u\n", params[0]);
}

void Terminal::escape$r(const Vector<unsigned>& params)
void Terminal::escape$r(const ParamVector& params)
{
unsigned top = 1;
unsigned bottom = m_rows;
Expand All @@ -212,7 +212,7 @@ void Terminal::escape$r(const Vector<unsigned>& params)
dbgprintf("FIXME: escape$r: Set scrolling region: %u-%u\n", top, bottom);
}

void Terminal::escape$H(const Vector<unsigned>& params)
void Terminal::escape$H(const ParamVector& params)
{
unsigned row = 1;
unsigned col = 1;
Expand All @@ -223,7 +223,7 @@ void Terminal::escape$H(const Vector<unsigned>& params)
set_cursor(row - 1, col - 1);
}

void Terminal::escape$A(const Vector<unsigned>& params)
void Terminal::escape$A(const ParamVector& params)
{
int num = 1;
if (params.size() >= 1)
Expand All @@ -236,7 +236,7 @@ void Terminal::escape$A(const Vector<unsigned>& params)
set_cursor(new_row, m_cursor_column);
}

void Terminal::escape$B(const Vector<unsigned>& params)
void Terminal::escape$B(const ParamVector& params)
{
int num = 1;
if (params.size() >= 1)
Expand All @@ -249,7 +249,7 @@ void Terminal::escape$B(const Vector<unsigned>& params)
set_cursor(new_row, m_cursor_column);
}

void Terminal::escape$C(const Vector<unsigned>& params)
void Terminal::escape$C(const ParamVector& params)
{
int num = 1;
if (params.size() >= 1)
Expand All @@ -262,7 +262,7 @@ void Terminal::escape$C(const Vector<unsigned>& params)
set_cursor(m_cursor_row, new_column);
}

void Terminal::escape$D(const Vector<unsigned>& params)
void Terminal::escape$D(const ParamVector& params)
{
int num = 1;
if (params.size() >= 1)
Expand All @@ -275,7 +275,7 @@ void Terminal::escape$D(const Vector<unsigned>& params)
set_cursor(m_cursor_row, new_column);
}

void Terminal::escape$G(const Vector<unsigned>& params)
void Terminal::escape$G(const ParamVector& params)
{
int new_column = 1;
if (params.size() >= 1)
Expand All @@ -285,7 +285,7 @@ void Terminal::escape$G(const Vector<unsigned>& params)
set_cursor(m_cursor_row, new_column);
}

void Terminal::escape$d(const Vector<unsigned>& params)
void Terminal::escape$d(const ParamVector& params)
{
int new_row = 1;
if (params.size() >= 1)
Expand All @@ -295,7 +295,7 @@ void Terminal::escape$d(const Vector<unsigned>& params)
set_cursor(new_row, m_cursor_column);
}

void Terminal::escape$X(const Vector<unsigned>& params)
void Terminal::escape$X(const ParamVector& params)
{
// Erase characters (without moving cursor)
int num = 1;
Expand All @@ -309,7 +309,7 @@ void Terminal::escape$X(const Vector<unsigned>& params)
}
}

void Terminal::escape$K(const Vector<unsigned>& params)
void Terminal::escape$K(const ParamVector& params)
{
int mode = 0;
if (params.size() >= 1)
Expand All @@ -336,7 +336,7 @@ void Terminal::escape$K(const Vector<unsigned>& params)
}
}

void Terminal::escape$J(const Vector<unsigned>& params)
void Terminal::escape$J(const ParamVector& params)
{
int mode = 0;
if (params.size() >= 1)
Expand Down Expand Up @@ -370,7 +370,7 @@ void Terminal::escape$J(const Vector<unsigned>& params)
}
}

void Terminal::escape$M(const Vector<unsigned>& params)
void Terminal::escape$M(const ParamVector& params)
{
int count = 1;
if (params.size() >= 1)
Expand Down Expand Up @@ -414,7 +414,7 @@ void Terminal::execute_escape_sequence(byte final)
{
m_final = final;
auto paramparts = String((const char*)m_parameters.data(), m_parameters.size()).split(';');
Vector<unsigned> params;
ParamVector params;
for (auto& parampart : paramparts) {
bool ok;
unsigned value = parse_uint(parampart, ok);
Expand Down
34 changes: 18 additions & 16 deletions Applications/Terminal/Terminal.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ class Terminal final : public GWidget {
void apply_size_increments_to_window(GWindow&);

private:
typedef Vector<unsigned, 4> ParamVector;

virtual void event(CEvent&) override;
virtual void paint_event(GPaintEvent&) override;
virtual void resize_event(GResizeEvent&) override;
Expand All @@ -42,22 +44,22 @@ class Terminal final : public GWidget {
void unimplemented_escape();
void unimplemented_xterm_escape();

void escape$A(const Vector<unsigned>&);
void escape$B(const Vector<unsigned>&);
void escape$C(const Vector<unsigned>&);
void escape$D(const Vector<unsigned>&);
void escape$H(const Vector<unsigned>&);
void escape$J(const Vector<unsigned>&);
void escape$K(const Vector<unsigned>&);
void escape$M(const Vector<unsigned>&);
void escape$G(const Vector<unsigned>&);
void escape$X(const Vector<unsigned>&);
void escape$d(const Vector<unsigned>&);
void escape$m(const Vector<unsigned>&);
void escape$s(const Vector<unsigned>&);
void escape$u(const Vector<unsigned>&);
void escape$t(const Vector<unsigned>&);
void escape$r(const Vector<unsigned>&);
void escape$A(const ParamVector&);
void escape$B(const ParamVector&);
void escape$C(const ParamVector&);
void escape$D(const ParamVector&);
void escape$H(const ParamVector&);
void escape$J(const ParamVector&);
void escape$K(const ParamVector&);
void escape$M(const ParamVector&);
void escape$G(const ParamVector&);
void escape$X(const ParamVector&);
void escape$d(const ParamVector&);
void escape$m(const ParamVector&);
void escape$s(const ParamVector&);
void escape$u(const ParamVector&);
void escape$t(const ParamVector&);
void escape$r(const ParamVector&);

void clear();

Expand Down
2 changes: 1 addition & 1 deletion Kernel/Process.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2276,7 +2276,7 @@ void SharedBuffer::destroy_if_unused()
void Process::disown_all_shared_buffers()
{
LOCKER(shared_buffers().lock());
Vector<SharedBuffer*> buffers_to_disown;
Vector<SharedBuffer*, 32> buffers_to_disown;
for (auto& it : shared_buffers().resource())
buffers_to_disown.append(it.value.ptr());
for (auto* shared_buffer : buffers_to_disown)
Expand Down
2 changes: 1 addition & 1 deletion Kernel/Thread.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,7 @@ void Thread::finalize()

void Thread::finalize_dying_threads()
{
Vector<Thread*> dying_threads;
Vector<Thread*, 32> dying_threads;
{
InterruptDisabler disabler;
for_each_in_state(Thread::State::Dying, [&] (Thread& thread) {
Expand Down
2 changes: 1 addition & 1 deletion LibC/unistd.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ int execvp(const char* filename, char* const argv[])

int execl(const char* filename, const char* arg0, ...)
{
Vector<const char*> args;
Vector<const char*, 16> args;
args.append(arg0);

va_list ap;
Expand Down
2 changes: 1 addition & 1 deletion LibCore/CEventLoop.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ int CEventLoop::exec()
wait_for_event();
do_processing();
}
Vector<QueuedEvent> events = move(m_queued_events);
auto events = move(m_queued_events);
for (auto& queued_event : events) {
auto* receiver = queued_event.receiver.ptr();
auto& event = *queued_event.event;
Expand Down
2 changes: 1 addition & 1 deletion LibCore/CEventLoop.h
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ class CEventLoop {
WeakPtr<CObject> receiver;
OwnPtr<CEvent> event;
};
Vector<QueuedEvent> m_queued_events;
Vector<QueuedEvent, 64> m_queued_events;

bool m_running { false };
bool m_exit_requested { false };
Expand Down
2 changes: 1 addition & 1 deletion LibGUI/GEventLoop.h
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ class GEventLoop final : public CEventLoop {
void handle_wm_event(const WSAPI_ServerMessage&, GWindow&);
void connect_to_server();

Vector<WSAPI_ServerMessage> m_unprocessed_messages;
Vector<WSAPI_ServerMessage, 64> m_unprocessed_messages;
static pid_t s_server_pid;
static pid_t s_event_fd;
};
2 changes: 1 addition & 1 deletion LibGUI/GFileSystemModel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ struct GFileSystemModel::Node {

String full_path(const GFileSystemModel& model) const
{
Vector<String> lineage;
Vector<String, 32> lineage;
for (auto* ancestor = parent; ancestor; ancestor = ancestor->parent) {
lineage.append(ancestor->name);
}
Expand Down
2 changes: 1 addition & 1 deletion LibGUI/GShortcut.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ static String to_string(KeyCode key)

String GShortcut::to_string() const
{
Vector<String> parts;
Vector<String, 8> parts;

if (m_modifiers & Mod_Ctrl)
parts.append("Ctrl");
Expand Down
2 changes: 1 addition & 1 deletion SharedGraphics/DisjointRectSet.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ void DisjointRectSet::add(const Rect& new_rect)

void DisjointRectSet::shatter()
{
Vector<Rect> output;
Vector<Rect, 32> output;
output.ensure_capacity(m_rects.size());
bool pass_had_intersections = false;
do {
Expand Down
4 changes: 2 additions & 2 deletions SharedGraphics/DisjointRectSet.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,11 @@ class DisjointRectSet {

void clear() { m_rects.clear(); }
void clear_with_capacity() { m_rects.clear_with_capacity(); }
const Vector<Rect>& rects() const { return m_rects; }
const Vector<Rect, 32>& rects() const { return m_rects; }

private:
void shatter();

Vector<Rect> m_rects;
Vector<Rect, 32> m_rects;
};

2 changes: 1 addition & 1 deletion SharedGraphics/Painter.h
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ class Painter {

Rect m_clip_origin;
Retained<GraphicsBitmap> m_target;
Vector<State> m_state_stack;
Vector<State, 4> m_state_stack;
};

class PainterStateSaver {
Expand Down
2 changes: 1 addition & 1 deletion Userland/ls.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -197,7 +197,7 @@ int do_dir_short(const char* path)
return 1;
}

Vector<String> names;
Vector<String, 1024> names;
int longest_name = 0;
while (auto* de = readdir(dirp)) {
if (de->d_name[0] == '.' && !flag_show_dotfiles)
Expand Down

0 comments on commit 5eedb22

Please sign in to comment.