Skip to content

Commit

Permalink
Minor cleanup & improved codegen in dictionary.cpp
Browse files Browse the repository at this point in the history
  • Loading branch information
fwsGonzo committed Jan 3, 2025
1 parent a033ce9 commit 67b0c37
Showing 1 changed file with 10 additions and 11 deletions.
21 changes: 10 additions & 11 deletions program/cpp/docker/api/dictionary.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,8 @@

#include "syscalls.h"

EXTERN_SYSCALL(void, sys_vcreate, Variant *, int, int, const void *);
MAKE_SYSCALL(ECALL_DICTIONARY_OPS, int, sys_dict_ops, Dictionary_Op, unsigned, const Variant *, Variant *);
MAKE_SYSCALL(ECALL_DICTIONARY_OPS, int, sys_dict_ops2, Dictionary_Op, unsigned, const Variant *, Variant *, const Variant *);
EXTERN_SYSCALL(void, sys_vcreate, Variant *, int, int, ...);
MAKE_SYSCALL(ECALL_DICTIONARY_OPS, int, sys_dict_ops, Dictionary_Op, unsigned, ...);
EXTERN_SYSCALL(unsigned, sys_vassign, unsigned, unsigned);

Dictionary &Dictionary::operator=(const Dictionary &other) {
Expand All @@ -13,19 +12,19 @@ Dictionary &Dictionary::operator=(const Dictionary &other) {
}

void Dictionary::clear() {
(void)sys_dict_ops(Dictionary_Op::CLEAR, m_idx, nullptr, nullptr);
(void)sys_dict_ops(Dictionary_Op::CLEAR, m_idx);
}

void Dictionary::erase(const Variant &key) {
(void)sys_dict_ops(Dictionary_Op::ERASE, m_idx, &key, nullptr);
(void)sys_dict_ops(Dictionary_Op::ERASE, m_idx, &key);
}

bool Dictionary::has(const Variant &key) const {
return sys_dict_ops(Dictionary_Op::HAS, m_idx, &key, nullptr);
return sys_dict_ops(Dictionary_Op::HAS, m_idx, &key);
}

int Dictionary::size() const {
return sys_dict_ops(Dictionary_Op::GET_SIZE, m_idx, nullptr, nullptr);
return sys_dict_ops(Dictionary_Op::GET_SIZE, m_idx);
}

Variant Dictionary::get(const Variant &key) const {
Expand All @@ -34,22 +33,22 @@ Variant Dictionary::get(const Variant &key) const {
return v;
}
void Dictionary::set(const Variant &key, const Variant &value) {
(void)sys_dict_ops(Dictionary_Op::SET, m_idx, &key, (Variant *)&value);
(void)sys_dict_ops(Dictionary_Op::SET, m_idx, &key, &value);
}
Variant Dictionary::get_or_add(const Variant &key, const Variant &default_value) {
Variant v;
(void)sys_dict_ops2(Dictionary_Op::GET_OR_ADD, m_idx, &key, &v, &default_value);
(void)sys_dict_ops(Dictionary_Op::GET_OR_ADD, m_idx, &key, &v, &default_value);
return v;
}

void Dictionary::merge(const Dictionary &other) {
Variant v(other);
(void)sys_dict_ops(Dictionary_Op::MERGE, m_idx, &v, nullptr);
(void)sys_dict_ops(Dictionary_Op::MERGE, m_idx, &v);
}

Dictionary Dictionary::Create() {
Variant v;
sys_vcreate(&v, Variant::DICTIONARY, 0, nullptr);
sys_vcreate(&v, Variant::DICTIONARY, 0);
Dictionary d;
d.m_idx = v.get_internal_index();
return d;
Expand Down

0 comments on commit 67b0c37

Please sign in to comment.