diff --git a/include/rive/animation/state_machine_instance.hpp b/include/rive/animation/state_machine_instance.hpp
index 83e86a1..57b3e64 100644
--- a/include/rive/animation/state_machine_instance.hpp
+++ b/include/rive/animation/state_machine_instance.hpp
@@ -38,7 +38,7 @@
         void processEvent(Vec2D position, EventType hitEvent = EventType::updateHover);
 
         template <typename SMType, typename InstType>
-        InstType* getNamedInput(std::string name) const;
+        InstType* getNamedInput(const std::string& name) const;
 
     public:
         StateMachineInstance(const StateMachine* machine, ArtboardInstance* instance);
@@ -57,9 +57,9 @@
         size_t inputCount() const { return m_InputInstances.size(); }
         SMIInput* input(size_t index) const;
 
-        SMIBool* getBool(std::string name) const;
-        SMINumber* getNumber(std::string name) const;
-        SMITrigger* getTrigger(std::string name) const;
+        SMIBool* getBool(const std::string& name) const;
+        SMINumber* getNumber(const std::string& name) const;
+        SMITrigger* getTrigger(const std::string& name) const;
 
         std::string name() const;
 
diff --git a/src/animation/state_machine_instance.cpp b/src/animation/state_machine_instance.cpp
index bfa61b4..fee23a4 100644
--- a/src/animation/state_machine_instance.cpp
+++ b/src/animation/state_machine_instance.cpp
@@ -381,7 +381,7 @@
 }
 
 template <typename SMType, typename InstType>
-InstType* StateMachineInstance::getNamedInput(std::string name) const {
+InstType* StateMachineInstance::getNamedInput(const std::string& name) const {
     for (const auto inst : m_InputInstances) {
         auto input = inst->input();
         if (input->is<SMType>() && input->name() == name) {
@@ -391,13 +391,13 @@
     return nullptr;
 }
 
-SMIBool* StateMachineInstance::getBool(std::string name) const {
+SMIBool* StateMachineInstance::getBool(const std::string& name) const {
     return getNamedInput<StateMachineBool, SMIBool>(name);
 }
-SMINumber* StateMachineInstance::getNumber(std::string name) const {
+SMINumber* StateMachineInstance::getNumber(const std::string& name) const {
     return getNamedInput<StateMachineNumber, SMINumber>(name);
 }
-SMITrigger* StateMachineInstance::getTrigger(std::string name) const {
+SMITrigger* StateMachineInstance::getTrigger(const std::string& name) const {
     return getNamedInput<StateMachineTrigger, SMITrigger>(name);
 }
 
