Skip to content

Commit ba9876b

Browse files
author
Thiago
authored
Use pointers (#1)
* Use pointers whenever possible * [skip ci] bump version
1 parent 73c86cc commit ba9876b

8 files changed

+1266
-1262
lines changed

build/.gitkeep

Whitespace-only changes.

build/anitomy-build.js

+76-76
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/bundle.js

+76-76
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/bundle.min.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package-lock.json

+1,076-1,076
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
{
22
"name": "anitomyscript",
3-
"version": "1.0.0",
3+
"version": "1.0.1",
44
"description": "Pure JavaScript bindings for Anitomy, ported with emscripten",
55
"main": "index.js",
66
"scripts": {
77
"test": "mocha test/*.spec.js",
8-
"build": "gulp",
8+
"build": "gulp build",
99
"rebuild": "gulp rebuild"
1010
},
1111
"repository": {

src/anitomy_script.cpp

+35-30
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,15 @@ using namespace std;
99
class AnitomyCompat : public Anitomy
1010
{
1111
public:
12-
void setOptions(Options newOptions)
12+
void setOptions(Options *newOptions)
1313
{
1414
Options &opts = options();
15-
opts.allowed_delimiters = newOptions.allowed_delimiters;
16-
opts.ignored_strings = newOptions.ignored_strings;
17-
opts.parse_episode_number = newOptions.parse_episode_number;
18-
opts.parse_episode_title = newOptions.parse_episode_title;
19-
opts.parse_file_extension = newOptions.parse_file_extension;
20-
opts.parse_release_group = newOptions.parse_release_group;
15+
opts.allowed_delimiters = newOptions->allowed_delimiters;
16+
opts.ignored_strings = newOptions->ignored_strings;
17+
opts.parse_episode_number = newOptions->parse_episode_number;
18+
opts.parse_episode_title = newOptions->parse_episode_title;
19+
opts.parse_file_extension = newOptions->parse_file_extension;
20+
opts.parse_release_group = newOptions->parse_release_group;
2121
}
2222
};
2323

@@ -31,37 +31,42 @@ vector<Elements> *elementVectorFromIntPointer(uintptr_t vec)
3131
return reinterpret_cast<vector<Elements> *>(vec);
3232
}
3333

34-
Options createOptions()
34+
Options *createOptions()
3535
{
36-
return Options();
36+
return new Options();
3737
}
3838

39-
vector<Elements> parseArray(vector<string_t> vec, Options options)
39+
vector<Elements> parseArray(vector<string_t> vec, Options *options)
4040
{
4141
vector<Elements> ret;
42-
AnitomyCompat an;
43-
an.setOptions(options);
42+
AnitomyCompat *an = new AnitomyCompat();
43+
an->setOptions(options);
4444
for (string_t filename : vec)
4545
{
46-
an.Parse(filename);
47-
ret.emplace_back(an.elements());
46+
an->Parse(filename);
47+
ret.push_back(an->elements());
4848
}
49+
free(options);
50+
delete an;
4951
return ret;
5052
}
5153

52-
Elements parseFile(string_t filename, Options options)
54+
Elements parseFile(string_t filename, Options *options)
5355
{
54-
AnitomyCompat an;
55-
an.setOptions(options);
56-
an.Parse(filename);
57-
return an.elements();
56+
AnitomyCompat *an = new AnitomyCompat();
57+
an->setOptions(options);
58+
an->Parse(filename);
59+
free(options);
60+
Elements el = an->elements();
61+
delete an;
62+
return el;
5863
}
5964

6065
EMSCRIPTEN_BINDINGS(Anitomy)
6166
{
62-
emscripten::function("_parseArray", &parseArray);
63-
emscripten::function("_parseFile", &parseFile);
64-
emscripten::function("_createOptions", &createOptions);
67+
emscripten::function("_parseArray", &parseArray, allow_raw_pointers());
68+
emscripten::function("_parseFile", &parseFile, allow_raw_pointers());
69+
emscripten::function("_createOptions", &createOptions, allow_raw_pointers());
6570

6671
register_vector<string_t>("VectorString_t")
6772
.constructor(&string_tVectorFromIntPointer, allow_raw_pointers());
@@ -78,7 +83,7 @@ EMSCRIPTEN_BINDINGS(Anitomy)
7883

7984
class_<AnitomyCompat, base<Anitomy>>("Anitomy")
8085
.constructor<>()
81-
.function("setOptions", &AnitomyCompat::setOptions);
86+
.function("setOptions", &AnitomyCompat::setOptions, allow_raw_pointers());
8287

8388
class_<Elements>("Elements")
8489
.constructor<>()
@@ -89,13 +94,13 @@ EMSCRIPTEN_BINDINGS(Anitomy)
8994
.function("count", &Elements::count)
9095
.function("get_all", &Elements::get_all);
9196

92-
value_object<Options>("Options")
93-
.field("allowed_delimiters", &Options::allowed_delimiters)
94-
.field("ignored_strings", &Options::ignored_strings)
95-
.field("parse_episode_number", &Options::parse_episode_number)
96-
.field("parse_episode_title", &Options::parse_episode_title)
97-
.field("parse_file_extension", &Options::parse_file_extension)
98-
.field("parse_release_group", &Options::parse_release_group);
97+
class_<Options>("Options")
98+
.property("allowed_delimiters", &Options::allowed_delimiters)
99+
.property("ignored_strings", &Options::ignored_strings)
100+
.property("parse_episode_number", &Options::parse_episode_number)
101+
.property("parse_episode_title", &Options::parse_episode_title)
102+
.property("parse_file_extension", &Options::parse_file_extension)
103+
.property("parse_release_group", &Options::parse_release_group);
99104

100105
enum_<ElementCategory>("ElementCategory")
101106
.value("kElementIterateFirst", ElementCategory::kElementIterateFirst)

test/anitomyscript.spec.js

-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ describe('anitomyscript', function () {
1111
describe('AnitomyNative', function () {
1212
it('Anitomy.setOptions', function () {
1313
const anitomy_native = new anitomyscript.AnitomyNative();
14-
const defaultOptions = anitomy_native._createOptions();
1514
const anitomy = new anitomy_native.Anitomy();
1615
const newOpts = anitomy_native._createOptions();
1716
const ignored = new anitomy_native.VectorString_t();

0 commit comments

Comments
 (0)