Renamed getSynthesizedSelectorSize to getSynthesizedMethodSize. Compute method name
size in accordance with how rewriter synthesizes method name.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@46131 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/AST/Decl.cpp b/AST/Decl.cpp
index d80b5ee..8ee382c 100644
--- a/AST/Decl.cpp
+++ b/AST/Decl.cpp
@@ -549,12 +549,19 @@
return NULL;
}
-int ObjCMethodDecl::getSynthesizedSelectorSize() const {
+/// getSynthesizedMethodSize - Compute size of synthesized method name
+/// as done be the rewrite.
+///
+unsigned ObjCMethodDecl::getSynthesizedMethodSize() const {
// syntesized method name is a concatenation of -/+[class-name selector]
// Get length of this name.
- int length = 4; // for '+' or '-', '[', space in between and ']'
- length += getSelector().getName().size(); // for selector name.
- length += strlen(getMethodContext()->getName()); // for its class name
+ unsigned length = 3; // _I_ or _C_
+ length += strlen(getClassInterface()->getName()) +1; // extra for _
+ NamedDecl *MethodContext = getMethodContext();
+ if (ObjCCategoryImplDecl *CID =
+ dyn_cast<ObjCCategoryImplDecl>(MethodContext))
+ length += strlen(CID->getName()) +1;
+ length += getSelector().getName().size(); // selector name
return length;
}