Skip to content

Commit c9dadf0

Browse files
committed
refactor: refactoring some confusing code
1 parent 4fb5ead commit c9dadf0

File tree

1 file changed

+16
-23
lines changed

1 file changed

+16
-23
lines changed

src/legacy/api/NbtAPI.cpp

Lines changed: 16 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -340,8 +340,7 @@ NbtByteClass::NbtByteClass(std::unique_ptr<ByteTag> p) : ScriptClass(ScriptClass
340340

341341
NbtByteClass* NbtByteClass::constructor(const Arguments& args) {
342342
try {
343-
auto tag = ByteTag((char)args[0].toInt());
344-
return new NbtByteClass(args.thiz(), std::move(std::make_unique<ByteTag>(tag)));
343+
return new NbtByteClass(args.thiz(), std::move(std::make_unique<ByteTag>((char)args[0].toInt())));
345344
}
346345
CATCH_C("Fail in Create ByteTag!");
347346
}
@@ -411,8 +410,7 @@ NbtIntClass::NbtIntClass(std::unique_ptr<IntTag> p) : ScriptClass(ScriptClass::C
411410

412411
NbtIntClass* NbtIntClass::constructor(const Arguments& args) {
413412
try {
414-
auto tag = IntTag(args[0].toInt());
415-
return new NbtIntClass(args.thiz(), std::make_unique<IntTag>(tag));
413+
return new NbtIntClass(args.thiz(), std::make_unique<IntTag>(args[0].toInt()));
416414
}
417415
CATCH_C("Fail in Create IntTag!");
418416
}
@@ -483,8 +481,7 @@ NbtShortClass::NbtShortClass(std::unique_ptr<ShortTag> p)
483481

484482
NbtShortClass* NbtShortClass::constructor(const Arguments& args) {
485483
try {
486-
auto tag = ShortTag(args[0].toInt());
487-
return new NbtShortClass(args.thiz(), std::make_unique<ShortTag>(tag));
484+
return new NbtShortClass(args.thiz(), std::make_unique<ShortTag>(args[0].toInt()));
488485
}
489486
CATCH_C("Fail in Create ShortTag!");
490487
}
@@ -554,8 +551,7 @@ NbtLongClass::NbtLongClass(std::unique_ptr<Int64Tag> p) : ScriptClass(ScriptClas
554551

555552
NbtLongClass* NbtLongClass::constructor(const Arguments& args) {
556553
try {
557-
auto tag = Int64Tag(args[0].asNumber().toInt64());
558-
return new NbtLongClass(args.thiz(), std::make_unique<Int64Tag>(tag));
554+
return new NbtLongClass(args.thiz(), std::make_unique<Int64Tag>(args[0].asNumber().toInt64()));
559555
}
560556
CATCH_C("Fail in Create LongTag!");
561557
}
@@ -626,8 +622,7 @@ NbtFloatClass::NbtFloatClass(std::unique_ptr<FloatTag> p)
626622

627623
NbtFloatClass* NbtFloatClass::constructor(const Arguments& args) {
628624
try {
629-
auto tag = FloatTag(args[0].asNumber().toFloat());
630-
return new NbtFloatClass(args.thiz(), std::make_unique<FloatTag>(tag));
625+
return new NbtFloatClass(args.thiz(), std::make_unique<FloatTag>(args[0].asNumber().toFloat()));
631626
}
632627
CATCH_C("Fail in Create FloatTag!");
633628
}
@@ -698,8 +693,7 @@ NbtDoubleClass::NbtDoubleClass(std::unique_ptr<DoubleTag> p)
698693

699694
NbtDoubleClass* NbtDoubleClass::constructor(const Arguments& args) {
700695
try {
701-
auto tag = DoubleTag(args[0].asNumber().toDouble());
702-
return new NbtDoubleClass(args.thiz(), std::make_unique<DoubleTag>(tag));
696+
return new NbtDoubleClass(args.thiz(), std::make_unique<DoubleTag>(args[0].asNumber().toDouble()));
703697
}
704698
CATCH_C("Fail in Create DoubleTag!");
705699
}
@@ -770,8 +764,7 @@ NbtStringClass::NbtStringClass(std::unique_ptr<StringTag> p)
770764

771765
NbtStringClass* NbtStringClass::constructor(const Arguments& args) {
772766
try {
773-
auto tag = StringTag(args[0].toStr());
774-
return new NbtStringClass(args.thiz(), std::make_unique<StringTag>(tag));
767+
return new NbtStringClass(args.thiz(), std::make_unique<StringTag>(args[0].toStr()));
775768
}
776769
CATCH_C("Fail in Create StringTag!");
777770
}
@@ -845,7 +838,7 @@ NbtByteArrayClass* NbtByteArrayClass::constructor(const Arguments& args) {
845838
try {
846839
auto buf = args[0].asByteBuffer();
847840

848-
std::unique_ptr<ByteArrayTag> arrayTag = std::make_unique<ByteArrayTag>(ByteArrayTag());
841+
std::unique_ptr<ByteArrayTag> arrayTag = std::make_unique<ByteArrayTag>();
849842
for (char c : buf.describeUtf8()) {
850843
arrayTag->push_back(c);
851844
}
@@ -971,14 +964,14 @@ void NbtListClassAddHelper(ListTag* tag, Local<Array>& arr) {
971964

972965
NbtListClass* NbtListClass::constructor(const Arguments& args) {
973966
try {
974-
auto tag = ListTag();
967+
auto tag = std::make_unique<ListTag>();
975968

976969
if (args.size() >= 1 && args[0].isArray()) {
977970
auto arr = args[0].asArray();
978-
NbtListClassAddHelper(&tag, arr);
971+
NbtListClassAddHelper(tag.get(), arr);
979972
}
980973

981-
return new NbtListClass(args.thiz(), std::make_unique<ListTag>(tag));
974+
return new NbtListClass(args.thiz(), std::move(tag));
982975
}
983976
CATCH_C("Fail in Create ListTag!");
984977
}
@@ -1470,14 +1463,14 @@ void NbtCompoundClassAddHelper(CompoundTag* tag, Local<Object>& obj) {
14701463

14711464
NbtCompoundClass* NbtCompoundClass::constructor(const Arguments& args) {
14721465
try {
1473-
auto tag = CompoundTag();
1466+
auto tag = std::make_unique<CompoundTag>();
14741467

14751468
if (args.size() >= 1 && args[0].isObject()) {
14761469
auto obj = args[0].asObject();
1477-
NbtCompoundClassAddHelper(&tag, obj);
1470+
NbtCompoundClassAddHelper(tag.get(), obj);
14781471
}
14791472

1480-
return new NbtCompoundClass(args.thiz(), std::make_unique<CompoundTag>(tag));
1473+
return new NbtCompoundClass(args.thiz(), std::move(tag));
14811474
}
14821475
CATCH_C("Fail in Create ListTag!");
14831476
}
@@ -1960,7 +1953,7 @@ Local<Value> NbtStatic::parseSNBT(const Arguments& args) {
19601953

19611954
try {
19621955
auto tag = CompoundTag::fromSnbt(args[0].toStr());
1963-
if (tag.has_value()) return NbtCompoundClass::pack(&tag.value());
1956+
if (tag.has_value()) return NbtCompoundClass::pack(tag->clone());
19641957
else return Local<Value>();
19651958
}
19661959
CATCH("Fail in parseSNBT!");
@@ -1973,7 +1966,7 @@ Local<Value> NbtStatic::parseBinaryNBT(const Arguments& args) {
19731966
try {
19741967
auto data = args[0].asByteBuffer();
19751968
auto tag = CompoundTag::fromBinaryNbt(std::string_view((char*)data.getRawBytes(), data.byteLength()));
1976-
if (tag.has_value()) return NbtCompoundClass::pack(&tag.value());
1969+
if (tag.has_value()) return NbtCompoundClass::pack(tag->clone());
19771970
else return Local<Value>();
19781971
}
19791972
CATCH("Fail in parseBinaryNBT!");

0 commit comments

Comments
 (0)