| 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 431 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 442 | 442 |
| 443 result += " }\n"; | 443 result += " }\n"; |
| 444 return result; | 444 return result; |
| 445 } | 445 } |
| 446 else | 446 else |
| 447 throw std::runtime_error("Unexpected return type for " + std::string(call.
name)); | 447 throw std::runtime_error("Unexpected return type for " + std::string(call.
name)); |
| 448 } | 448 } |
| 449 | 449 |
| 450 const std::string wrapCall(const FunctionInfo& call) | 450 const std::string wrapCall(const FunctionInfo& call) |
| 451 { | 451 { |
| 452 char buffer[20]; | |
| 453 bool hasStringArgs = false; | 452 bool hasStringArgs = false; |
| 454 std::vector<std::string> params; | 453 std::vector<std::string> params; |
| 455 std::string prefix = "function("; | 454 std::string prefix = "function("; |
| 456 for (int i = 0; i < call.args.size(); i++) | 455 for (int i = 0; i < call.args.size(); i++) |
| 457 { | 456 { |
| 458 sprintf(buffer, "arg%i", i); | 457 std::string argName("arg" + std::to_string(i)); |
| 459 if (i > 0) | 458 if (i > 0) |
| 460 prefix += ", "; | 459 prefix += ", "; |
| 461 prefix += buffer; | 460 prefix += argName; |
| 462 | 461 |
| 463 if (call.args[i] == TypeCategory::STRING_REF) | 462 if (call.args[i] == TypeCategory::STRING_REF) |
| 464 { | 463 { |
| 465 hasStringArgs = true; | 464 hasStringArgs = true; |
| 466 params.push_back(std::string("createString(") + buffer + ")"); | 465 params.push_back(std::string("createString(") + argName + ")"); |
| 467 } | 466 } |
| 468 else | 467 else |
| 469 params.push_back(buffer); | 468 params.push_back(argName); |
| 470 } | 469 } |
| 471 prefix += ")\n{\n"; | 470 prefix += ")\n{\n"; |
| 472 | 471 |
| 473 std::string suffix = "}"; | 472 std::string suffix = "}"; |
| 474 if (call.returnType != TypeCategory::VOID) | 473 if (call.returnType != TypeCategory::VOID) |
| 475 suffix = " return result;\n" + suffix; | 474 suffix = " return result;\n" + suffix; |
| 476 | 475 |
| 477 if (call.returnType == TypeCategory::DEPENDENT_STRING || | 476 if (call.returnType == TypeCategory::DEPENDENT_STRING || |
| 478 call.returnType == TypeCategory::OWNED_STRING || hasStringArgs) | 477 call.returnType == TypeCategory::OWNED_STRING || hasStringArgs) |
| 479 { | 478 { |
| (...skipping 256 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 736 | 735 |
| 737 std::vector<std::pair<int, std::string>> mapping; | 736 std::vector<std::pair<int, std::string>> mapping; |
| 738 for (const auto& item : list) | 737 for (const auto& item : list) |
| 739 mapping.emplace_back(item.first, item.second); | 738 mapping.emplace_back(item.first, item.second); |
| 740 | 739 |
| 741 bindings_internal::register_differentiator( | 740 bindings_internal::register_differentiator( |
| 742 bindings_internal::TypeInfo<ClassType>(), offset, mapping); | 741 bindings_internal::TypeInfo<ClassType>(), offset, mapping); |
| 743 return *this; | 742 return *this; |
| 744 } | 743 } |
| 745 }; | 744 }; |
| OLD | NEW |