Left: | ||
Right: |
OLD | NEW |
---|---|
1 #pragma once | 1 #pragma once |
2 | 2 |
3 #include <cstdint> | 3 #include <cstdint> |
4 #include <cstdio> | 4 #include <cstdio> |
5 #include <cstdlib> | 5 #include <cstdlib> |
6 #include <exception> | 6 #include <exception> |
7 #include <map> | 7 #include <map> |
8 #include <string> | 8 #include <string> |
9 #include <type_traits> | 9 #include <type_traits> |
10 #include <utility> | 10 #include <utility> |
(...skipping 485 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
496 function createString(str) | 496 function createString(str) |
497 { | 497 { |
498 var length = 0; | 498 var length = 0; |
499 var buffer = 0; | 499 var buffer = 0; |
500 if (str) | 500 if (str) |
501 { | 501 { |
502 buffer = Runtime.stackAlloc(str.length * 2); | 502 buffer = Runtime.stackAlloc(str.length * 2); |
503 length = copyString(str, buffer); | 503 length = copyString(str, buffer); |
504 } | 504 } |
505 | 505 |
506 var result = Module.Runtime.stackAlloc(sizeofString); | 506 var result = Runtime.stackAlloc(sizeofString); |
Wladimir Palant
2017/03/15 11:02:48
We don't need to call this via Module, and above w
| |
507 Module._InitString(result, buffer, length); | 507 Module._InitString(result, buffer, length); |
508 return result; | 508 return result; |
509 } | 509 } |
510 | 510 |
511 function readString(str) | 511 function readString(str) |
512 { | 512 { |
513 var length = Module._GetStringLength(str); | 513 var length = Module._GetStringLength(str); |
514 var pointer = Module._GetStringData(str) >> 1; | 514 var pointer = Module._GetStringData(str) >> 1; |
515 return String.fromCharCode.apply(String, HEAP16.slice(pointer, pointer + len gth)); | 515 return String.fromCharCode.apply(String, HEAP16.slice(pointer, pointer + len gth)); |
516 } | 516 } |
517 | 517 |
518 function createClass(superclass, ref_counted_offset) | 518 function createClass(superclass, ref_counted_offset) |
519 { | 519 { |
520 var result = function(pointer) | 520 var result = function(pointer) |
521 { | 521 { |
522 this._pointer = pointer; | 522 this._pointer = pointer; |
523 }; | 523 }; |
524 if (superclass) | 524 if (superclass) |
525 result.prototype = Object.create(superclass.prototype); | 525 result.prototype = Object.create(superclass.prototype); |
526 result.prototype.delete = function() | 526 result.prototype.delete = function() |
527 { | 527 { |
528 Module._ReleaseRef(this._pointer + ref_counted_offset); | 528 Module._ReleaseRef(this._pointer + ref_counted_offset); |
529 }; | 529 }; |
530 return result; | 530 return result; |
531 })"); | 531 } |
532 )"); | |
Wladimir Palant
2017/03/15 11:02:48
Surprisingly, this is the only change that was rea
sergei
2017/03/20 17:41:49
Should spaces at the beginning of ` )");` be re
sergei
2017/03/20 17:41:49
Actually the whole last line is removed. I think i
Wladimir Palant
2017/03/21 10:18:59
Luckily, we don't care about the resulting code be
| |
532 } | 533 } |
533 | 534 |
534 void printClass(const ClassInfo& cls) | 535 void printClass(const ClassInfo& cls) |
535 { | 536 { |
536 DifferentiatorInfo differentiator = cls.subclass_differentiator; | 537 DifferentiatorInfo differentiator = cls.subclass_differentiator; |
537 if (differentiator.offset != SIZE_MAX) | 538 if (differentiator.offset != SIZE_MAX) |
538 { | 539 { |
539 printf("var %s_mapping = \n", cls.name.c_str()); | 540 printf("var %s_mapping = \n", cls.name.c_str()); |
540 puts("{"); | 541 puts("{"); |
541 for (const auto& item : differentiator.mapping) | 542 for (const auto& item : differentiator.mapping) |
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
717 | 718 |
718 std::vector<std::pair<int, std::string>> mapping; | 719 std::vector<std::pair<int, std::string>> mapping; |
719 for (const auto& item : list) | 720 for (const auto& item : list) |
720 mapping.emplace_back(item.first, item.second); | 721 mapping.emplace_back(item.first, item.second); |
721 | 722 |
722 bindings_internal::register_differentiator( | 723 bindings_internal::register_differentiator( |
723 bindings_internal::TypeInfo<ClassType>(), offset, mapping); | 724 bindings_internal::TypeInfo<ClassType>(), offset, mapping); |
724 return *this; | 725 return *this; |
725 } | 726 } |
726 }; | 727 }; |
OLD | NEW |