Skip to content

Commit

Permalink
fix static/dynamic nature of get_hash and get_class methods
Browse files Browse the repository at this point in the history
  • Loading branch information
apolyakov committed Feb 25, 2025
1 parent a6fed18 commit 4f4235e
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 12 deletions.
4 changes: 2 additions & 2 deletions runtime/job-workers/job-interface.h
Original file line number Diff line number Diff line change
Expand Up @@ -83,8 +83,8 @@ struct C$KphpJobWorkerResponseError: public refcountable_polymorphic_php_classes
return R"(KphpJobWorkerResponseError)";
}

int get_hash() const noexcept override {
std::string_view name_view{C$KphpJobWorkerResponseError::get_class()};
int32_t get_hash() const noexcept override {
std::string_view name_view{get_class()};
return static_cast<int32_t>(vk::murmur_hash<uint32_t>(name_view.data(), name_view.size()));
}

Expand Down
6 changes: 3 additions & 3 deletions runtime/memcache.h
Original file line number Diff line number Diff line change
Expand Up @@ -51,12 +51,12 @@ class C$McMemcache final : public refcountable_polymorphic_php_classes<C$Memcach
visitor("", array<int64_t>{});
}

const char *get_class() const final {
const char *get_class() const override {
return "McMemcache";
}

int32_t get_hash() const final {
std::string_view name_view{C$McMemcache::get_class()};
int32_t get_hash() const override {
std::string_view name_view{get_class()};
return static_cast<int32_t>(vk::murmur_hash<uint32_t>(name_view.data(), name_view.size()));
}

Expand Down
6 changes: 3 additions & 3 deletions runtime/spl/array_iterator.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,18 +13,18 @@
#include "runtime-common/stdlib/visitors/dummy-visitor-methods.h"

// C$ArrayIterator implements SPL ArrayIterator class.
struct C$ArrayIterator : public refcountable_php_classes<C$ArrayIterator>, private DummyVisitorMethods {
struct C$ArrayIterator final : public refcountable_php_classes<C$ArrayIterator>, private DummyVisitorMethods {
// we store an array to keep a living reference to it while iterator is valid;
// also we may implement rewind() method later if we feel like it
array<mixed> arr;
array<mixed>::const_iterator it;
array<mixed>::const_iterator end;

const char *get_class() const noexcept {
constexpr const char *get_class() const noexcept {
return "ArrayIterator";
}

int32_t get_hash() const noexcept {
constexpr int32_t get_hash() const noexcept {
std::string_view name_view{get_class()};
return static_cast<int32_t>(vk::murmur_hash<uint32_t>(name_view.data(), name_view.size()));
}
Expand Down
8 changes: 4 additions & 4 deletions runtime/tl/rpc_function.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
#include <string_view>

#include "common/algorithms/hashes.h"
#include "common/wrappers/string_view.h"
#include "runtime-common/core/class-instance/refcountable-php-classes.h"
#include "runtime-common/core/runtime-core.h"

struct tl_func_base;

Expand All @@ -28,7 +28,7 @@ class InstanceDeepDestroyVisitor;
struct C$VK$TL$RpcFunction : abstract_refcountable_php_interface {
virtual const char *get_class() const { return "VK\\TL\\RpcFunction"; }
virtual int32_t get_hash() const {
std::string_view name_view{C$VK$TL$RpcFunction::get_class()};
std::string_view name_view{get_class()};
return static_cast<int32_t>(vk::murmur_hash<uint32_t>(name_view.data(), name_view.size()));
}

Expand All @@ -50,7 +50,7 @@ struct C$VK$TL$RpcFunction : abstract_refcountable_php_interface {
struct C$VK$TL$RpcFunctionReturnResult : abstract_refcountable_php_interface {
virtual const char *get_class() const { return "VK\\TL\\RpcFunctionReturnResult"; }
virtual int32_t get_hash() const {
std::string_view name_view{C$VK$TL$RpcFunctionReturnResult::get_class()};
std::string_view name_view{get_class()};
return static_cast<int32_t>(vk::murmur_hash<uint32_t>(name_view.data(), name_view.size()));
}

Expand Down Expand Up @@ -79,7 +79,7 @@ struct C$VK$TL$RpcResponse : abstract_refcountable_php_interface {

virtual const char *get_class() const { return "VK\\TL\\RpcResponse"; }
virtual int32_t get_hash() const {
std::string_view name_view{C$VK$TL$RpcResponse::get_class()};
std::string_view name_view{get_class()};
return static_cast<int32_t>(vk::murmur_hash<uint32_t>(name_view.data(), name_view.size()));
}

Expand Down

0 comments on commit 4f4235e

Please sign in to comment.