From 4d1eb76ada7fa4834ce8adb4086ec831d8f19028 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Fri, 20 Feb 2009 21:16:26 +0000 Subject: newly factored, we can now move the set and destroy methods out of line. llvm-svn: 65166 --- clang/lib/AST/DeclObjC.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'clang/lib/AST/DeclObjC.cpp') diff --git a/clang/lib/AST/DeclObjC.cpp b/clang/lib/AST/DeclObjC.cpp index ec67f5cf404..5a3c730a766 100644 --- a/clang/lib/AST/DeclObjC.cpp +++ b/clang/lib/AST/DeclObjC.cpp @@ -16,6 +16,26 @@ #include "clang/AST/Stmt.h" using namespace clang; +//===----------------------------------------------------------------------===// +// ObjCListBase +//===----------------------------------------------------------------------===// + +void ObjCListBase::Destroy() { + delete[] List; + NumElts = 0; + List = 0; +} + +void ObjCListBase::set(void *const* InList, unsigned Elts) { + assert(List == 0 && "Elements already set!"); + if (Elts == 0) return; // Setting to an empty list is a noop. + + List = new void*[Elts]; + NumElts = Elts; + memcpy(List, InList, sizeof(void*)*Elts); +} + + //===----------------------------------------------------------------------===// // ObjCInterfaceDecl //===----------------------------------------------------------------------===// -- cgit v1.2.3