| OLD | NEW |
| 1 /* | 1 /* |
| 2 * This file is part of Adblock Plus <https://adblockplus.org/>, | 2 * This file is part of Adblock Plus <https://adblockplus.org/>, |
| 3 * Copyright (C) 2006-2017 eyeo GmbH | 3 * Copyright (C) 2006-2017 eyeo GmbH |
| 4 * | 4 * |
| 5 * Adblock Plus is free software: you can redistribute it and/or modify | 5 * Adblock Plus is free software: you can redistribute it and/or modify |
| 6 * it under the terms of the GNU General Public License version 3 as | 6 * it under the terms of the GNU General Public License version 3 as |
| 7 * published by the Free Software Foundation. | 7 * published by the Free Software Foundation. |
| 8 * | 8 * |
| 9 * Adblock Plus is distributed in the hope that it will be useful, | 9 * Adblock Plus is distributed in the hope that it will be useful, |
| 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| (...skipping 439 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 450 result += " else\n"; | 450 result += " else\n"; |
| 451 result += " result = null;\n"; | 451 result += " result = null;\n"; |
| 452 return result; | 452 return result; |
| 453 } | 453 } |
| 454 else | 454 else |
| 455 throw std::runtime_error("Unexpected return type for " + std::string(call.
name)); | 455 throw std::runtime_error("Unexpected return type for " + std::string(call.
name)); |
| 456 } | 456 } |
| 457 | 457 |
| 458 const std::string wrapCall(const FunctionInfo& call) | 458 const std::string wrapCall(const FunctionInfo& call) |
| 459 { | 459 { |
| 460 char buffer[20]; | |
| 461 bool hasStringArgs = false; | 460 bool hasStringArgs = false; |
| 462 std::vector<std::string> params; | 461 std::vector<std::string> params; |
| 463 std::string prefix = "function("; | 462 std::string prefix = "function("; |
| 464 for (int i = 0; i < call.args.size(); i++) | 463 for (int i = 0; i < call.args.size(); i++) |
| 465 { | 464 { |
| 466 sprintf(buffer, "arg%i", i); | 465 std::string argName("arg" + std::to_string(i)); |
| 467 if (i > 0) | 466 if (i > 0) |
| 468 prefix += ", "; | 467 prefix += ", "; |
| 469 prefix += buffer; | 468 prefix += argName; |
| 470 | 469 |
| 471 if (call.args[i] == TypeCategory::STRING_REF) | 470 if (call.args[i] == TypeCategory::STRING_REF) |
| 472 { | 471 { |
| 473 hasStringArgs = true; | 472 hasStringArgs = true; |
| 474 params.push_back(std::string("createString(") + buffer + ")"); | 473 params.push_back(std::string("createString(") + argName + ")"); |
| 475 } | 474 } |
| 476 else if (call.args[i] == TypeCategory::CLASS_PTR) | 475 else if (call.args[i] == TypeCategory::CLASS_PTR) |
| 477 params.push_back(std::string(buffer) + "._pointer"); | 476 params.push_back(argName + "._pointer"); |
| 478 else | 477 else |
| 479 params.push_back(buffer); | 478 params.push_back(argName); |
| 480 } | 479 } |
| 481 prefix += ")\n{\n"; | 480 prefix += ")\n{\n"; |
| 482 | 481 |
| 483 std::string suffix = "}"; | 482 std::string suffix = "}"; |
| 484 if (call.returnType != TypeCategory::VOID) | 483 if (call.returnType != TypeCategory::VOID) |
| 485 suffix = " return result;\n" + suffix; | 484 suffix = " return result;\n" + suffix; |
| 486 | 485 |
| 487 if (call.returnType == TypeCategory::DEPENDENT_STRING || | 486 if (call.returnType == TypeCategory::DEPENDENT_STRING || |
| 488 call.returnType == TypeCategory::OWNED_STRING || hasStringArgs) | 487 call.returnType == TypeCategory::OWNED_STRING || hasStringArgs) |
| 489 { | 488 { |
| (...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 758 bindings_internal::register_differentiator( | 757 bindings_internal::register_differentiator( |
| 759 bindings_internal::TypeInfo<ClassType>(), offset, mapping); | 758 bindings_internal::TypeInfo<ClassType>(), offset, mapping); |
| 760 return *this; | 759 return *this; |
| 761 } | 760 } |
| 762 }; | 761 }; |
| 763 | 762 |
| 764 void custom_generator(bindings_internal::CustomGenerator generator) | 763 void custom_generator(bindings_internal::CustomGenerator generator) |
| 765 { | 764 { |
| 766 bindings_internal::customGenerators.push_back(generator); | 765 bindings_internal::customGenerators.push_back(generator); |
| 767 } | 766 } |
| OLD | NEW |