Skip to content

Commit 6b5cc48

Browse files
committed
Remove obsolete parameters from create monitor methods
1 parent a94ffb6 commit 6b5cc48

File tree

9 files changed

+26
-30
lines changed

9 files changed

+26
-30
lines changed

include/scratchcpp/iengine.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -350,10 +350,10 @@ class LIBSCRATCHCPP_EXPORT IEngine
350350
virtual void setMonitors(const std::vector<std::shared_ptr<Monitor>> &newMonitors) = 0;
351351

352352
/*! Creates a monitor for the given variable if it's missing and returns it. */
353-
virtual Monitor *createVariableMonitor(std::shared_ptr<Variable> var, const std::string &opcode, const std::string &varFieldName, int varFieldId, BlockComp compileFunction) = 0;
353+
virtual Monitor *createVariableMonitor(std::shared_ptr<Variable> var, const std::string &opcode, const std::string &varFieldName) = 0;
354354

355355
/*! Creates a monitor for the given list if it's missing and returns it. */
356-
virtual Monitor *createListMonitor(std::shared_ptr<List> list, const std::string &opcode, const std::string &listFieldName, int listFieldId, BlockComp compileFunction) = 0;
356+
virtual Monitor *createListMonitor(std::shared_ptr<List> list, const std::string &opcode, const std::string &listFieldName) = 0;
357357

358358
/*! Emits when a monitor is added. */
359359
virtual sigslot::signal<Monitor *> &monitorAdded() = 0;

src/blocks/listblocks.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -270,7 +270,7 @@ extern "C" void data_showlist(Target *target, List *list)
270270
* we can look up the list by ID.
271271
*/
272272
auto index = target->findListById(list->id());
273-
monitor = target->engine()->createListMonitor(target->listAt(index), "data_listcontents", "LIST", -1, &ListBlocks::compileListContents);
273+
monitor = target->engine()->createListMonitor(target->listAt(index), "data_listcontents", "LIST");
274274
}
275275

276276
monitor->setVisible(true);

src/blocks/listblocks.h

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,8 @@ class ListBlocks : public IExtension
1818

1919
void registerBlocks(IEngine *engine) override;
2020

21-
// NOTE: Must be public because of monitor show/hide blocks
22-
static CompilerValue *compileListContents(Compiler *compiler);
23-
2421
private:
22+
static CompilerValue *compileListContents(Compiler *compiler);
2523
static CompilerValue *compileAddToList(Compiler *compiler);
2624
static CompilerValue *getListIndex(Compiler *compiler, CompilerValue *input, List *list, CompilerValue *listSize);
2725
static CompilerValue *compileDeleteOfList(Compiler *compiler);

src/blocks/variableblocks.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ extern "C" void data_showvariable(Target *target, Variable *variable)
150150
* we can look up the variable by ID.
151151
*/
152152
auto index = target->findVariableById(variable->id());
153-
monitor = target->engine()->createVariableMonitor(target->variableAt(index), "data_variable", "VARIABLE", -1, &VariableBlocks::compileVariable);
153+
monitor = target->engine()->createVariableMonitor(target->variableAt(index), "data_variable", "VARIABLE");
154154
}
155155

156156
monitor->setVisible(true);

src/blocks/variableblocks.h

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,8 @@ class VariableBlocks : public IExtension
1616

1717
void registerBlocks(IEngine *engine) override;
1818

19-
// NOTE: Must be public for show/hide monitor blocks
20-
static CompilerValue *compileVariable(Compiler *compiler);
21-
2219
private:
20+
static CompilerValue *compileVariable(Compiler *compiler);
2321
static CompilerValue *compileSetVariableTo(Compiler *compiler);
2422
static CompilerValue *compileChangeVariableBy(Compiler *compiler);
2523
static CompilerValue *compileShowVariable(Compiler *compiler);

src/engine/internal/engine.cpp

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1359,14 +1359,16 @@ void Engine::setMonitors(const std::vector<std::shared_ptr<Monitor>> &newMonitor
13591359
}
13601360
}
13611361

1362-
Monitor *Engine::createVariableMonitor(std::shared_ptr<Variable> var, const std::string &opcode, const std::string &varFieldName, int varFieldId, BlockComp compileFunction)
1362+
Monitor *Engine::createVariableMonitor(std::shared_ptr<Variable> var, const std::string &opcode, const std::string &varFieldName)
13631363
{
13641364
if (var->monitor())
13651365
return var->monitor();
13661366
else {
1367+
IExtension *ext = blockExtension(opcode);
1368+
BlockComp compileFunction = resolveBlockCompileFunc(ext, opcode);
1369+
13671370
auto monitor = std::make_shared<Monitor>(var->id(), opcode);
13681371
auto field = std::make_shared<Field>(varFieldName, var->name(), var);
1369-
field->setFieldId(varFieldId);
13701372
monitor->block()->addField(field);
13711373
monitor->block()->setCompileFunction(compileFunction);
13721374

@@ -1377,14 +1379,16 @@ Monitor *Engine::createVariableMonitor(std::shared_ptr<Variable> var, const std:
13771379
}
13781380
}
13791381

1380-
Monitor *Engine::createListMonitor(std::shared_ptr<List> list, const std::string &opcode, const std::string &listFieldName, int listFieldId, BlockComp compileFunction)
1382+
Monitor *Engine::createListMonitor(std::shared_ptr<List> list, const std::string &opcode, const std::string &listFieldName)
13811383
{
13821384
if (list->monitor())
13831385
return list->monitor();
13841386
else {
1387+
IExtension *ext = blockExtension(opcode);
1388+
BlockComp compileFunction = resolveBlockCompileFunc(ext, opcode);
1389+
13851390
auto monitor = std::make_shared<Monitor>(list->id(), opcode);
13861391
auto field = std::make_shared<Field>(listFieldName, list->name(), list);
1387-
field->setFieldId(listFieldId);
13881392
monitor->block()->addField(field);
13891393
monitor->block()->setCompileFunction(compileFunction);
13901394
monitor->setMode(Monitor::Mode::List);

src/engine/internal/engine.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -143,8 +143,8 @@ class Engine : public IEngine
143143

144144
const std::vector<std::shared_ptr<Monitor>> &monitors() const override;
145145
void setMonitors(const std::vector<std::shared_ptr<Monitor>> &newMonitors) override;
146-
Monitor *createVariableMonitor(std::shared_ptr<Variable> var, const std::string &opcode, const std::string &varFieldName, int varFieldId, BlockComp compileFunction) override;
147-
Monitor *createListMonitor(std::shared_ptr<List> list, const std::string &opcode, const std::string &listFieldName, int listFieldId, BlockComp compileFunction) override;
146+
Monitor *createVariableMonitor(std::shared_ptr<Variable> var, const std::string &opcode, const std::string &varFieldName) override;
147+
Monitor *createListMonitor(std::shared_ptr<List> list, const std::string &opcode, const std::string &listFieldName) override;
148148
sigslot::signal<Monitor *> &monitorAdded() override;
149149
sigslot::signal<Monitor *, IMonitorHandler *> &monitorRemoved() override;
150150

test/engine/engine_test.cpp

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1569,11 +1569,9 @@ TEST(EngineTest, CreateMissingMonitors)
15691569
{
15701570
static constexpr const char *VARIABLE_OPCODE = "data_variable";
15711571
static constexpr const char *VARIABLE_FIELD_NAME = "VARIABLE";
1572-
static constexpr int VARIABLE_FIELD_ID = 1;
15731572

15741573
static constexpr const char *LIST_OPCODE = "data_listcontents";
15751574
static constexpr const char *LIST_FIELD_NAME = "LIST";
1576-
static constexpr int LIST_FIELD_ID = 2;
15771575

15781576
auto var1 = std::make_shared<Variable>("a", "var1");
15791577
auto var2 = std::make_shared<Variable>("b", "var2");
@@ -1609,7 +1607,6 @@ TEST(EngineTest, CreateMissingMonitors)
16091607

16101608
auto field = block->fieldAt(0);
16111609
ASSERT_EQ(field->name(), VARIABLE_FIELD_NAME);
1612-
ASSERT_EQ(field->fieldId(), VARIABLE_FIELD_ID);
16131610
ASSERT_EQ(field->value(), var->name());
16141611
ASSERT_EQ(field->valuePtr(), var);
16151612

@@ -1632,7 +1629,6 @@ TEST(EngineTest, CreateMissingMonitors)
16321629

16331630
auto field = block->fieldAt(0);
16341631
ASSERT_EQ(field->name(), LIST_FIELD_NAME);
1635-
ASSERT_EQ(field->fieldId(), LIST_FIELD_ID);
16361632
ASSERT_EQ(field->value(), list->name());
16371633
ASSERT_EQ(field->valuePtr(), list);
16381634

@@ -1653,10 +1649,10 @@ TEST(EngineTest, CreateMissingMonitors)
16531649
ASSERT_EQ(monitors[1], m2);
16541650
ASSERT_EQ(monitors[2], m3);
16551651

1656-
engine.createVariableMonitor(var2, VARIABLE_OPCODE, VARIABLE_FIELD_NAME, VARIABLE_FIELD_ID, nullptr);
1657-
engine.createListMonitor(list1, LIST_OPCODE, LIST_FIELD_NAME, LIST_FIELD_ID, nullptr);
1658-
engine.createVariableMonitor(var4, VARIABLE_OPCODE, VARIABLE_FIELD_NAME, VARIABLE_FIELD_ID, nullptr);
1659-
engine.createVariableMonitor(var5, VARIABLE_OPCODE, VARIABLE_FIELD_NAME, VARIABLE_FIELD_ID, nullptr);
1652+
engine.createVariableMonitor(var2, VARIABLE_OPCODE, VARIABLE_FIELD_NAME);
1653+
engine.createListMonitor(list1, LIST_OPCODE, LIST_FIELD_NAME);
1654+
engine.createVariableMonitor(var4, VARIABLE_OPCODE, VARIABLE_FIELD_NAME);
1655+
engine.createVariableMonitor(var5, VARIABLE_OPCODE, VARIABLE_FIELD_NAME);
16601656

16611657
ASSERT_EQ(monitors.size(), 7);
16621658
checkVariableMonitor(monitors[3], var2);
@@ -1684,10 +1680,10 @@ TEST(EngineTest, CreateMissingMonitors)
16841680
Monitor *m4, *m5, *m6, *m7;
16851681
EXPECT_CALL(addMonitorMock, monitorAdded(_)).WillOnce(SaveArg<0>(&m4)).WillOnce(SaveArg<0>(&m5)).WillOnce(SaveArg<0>(&m6)).WillOnce(SaveArg<0>(&m7));
16861682

1687-
engine.createVariableMonitor(var2, VARIABLE_OPCODE, VARIABLE_FIELD_NAME, VARIABLE_FIELD_ID, nullptr);
1688-
engine.createListMonitor(list1, LIST_OPCODE, LIST_FIELD_NAME, LIST_FIELD_ID, nullptr);
1689-
engine.createVariableMonitor(var4, VARIABLE_OPCODE, VARIABLE_FIELD_NAME, VARIABLE_FIELD_ID, nullptr);
1690-
engine.createVariableMonitor(var5, VARIABLE_OPCODE, VARIABLE_FIELD_NAME, VARIABLE_FIELD_ID, nullptr);
1683+
engine.createVariableMonitor(var2, VARIABLE_OPCODE, VARIABLE_FIELD_NAME);
1684+
engine.createListMonitor(list1, LIST_OPCODE, LIST_FIELD_NAME);
1685+
engine.createVariableMonitor(var4, VARIABLE_OPCODE, VARIABLE_FIELD_NAME);
1686+
engine.createVariableMonitor(var5, VARIABLE_OPCODE, VARIABLE_FIELD_NAME);
16911687

16921688
const auto &monitors = engine.monitors();
16931689
ASSERT_EQ(monitors.size(), 7);

test/mocks/enginemock.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -124,8 +124,8 @@ class EngineMock : public IEngine
124124

125125
MOCK_METHOD(const std::vector<std::shared_ptr<Monitor>> &, monitors, (), (const, override));
126126
MOCK_METHOD(void, setMonitors, (const std::vector<std::shared_ptr<Monitor>> &), (override));
127-
MOCK_METHOD(Monitor *, createVariableMonitor, (std::shared_ptr<Variable>, const std::string &, const std::string &, int, BlockComp), (override));
128-
MOCK_METHOD(Monitor *, createListMonitor, (std::shared_ptr<List>, const std::string &, const std::string &, int, BlockComp), (override));
127+
MOCK_METHOD(Monitor *, createVariableMonitor, (std::shared_ptr<Variable>, const std::string &, const std::string &), (override));
128+
MOCK_METHOD(Monitor *, createListMonitor, (std::shared_ptr<List>, const std::string &, const std::string &), (override));
129129
MOCK_METHOD(sigslot::signal<Monitor *> &, monitorAdded, (), (override));
130130
MOCK_METHOD((sigslot::signal<Monitor *, IMonitorHandler *> &), monitorRemoved, (), (override));
131131

0 commit comments

Comments
 (0)