summaryrefslogtreecommitdiff
path: root/src/inc/stringarraylist.inl
diff options
context:
space:
mode:
Diffstat (limited to 'src/inc/stringarraylist.inl')
-rw-r--r--src/inc/stringarraylist.inl76
1 files changed, 76 insertions, 0 deletions
diff --git a/src/inc/stringarraylist.inl b/src/inc/stringarraylist.inl
new file mode 100644
index 0000000000..73ca405537
--- /dev/null
+++ b/src/inc/stringarraylist.inl
@@ -0,0 +1,76 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+#include "ex.h"
+
+inline SString& StringArrayList::operator[] (DWORD idx) const
+{
+ WRAPPER_NO_CONTRACT;
+ return Get(idx);
+}
+
+inline SString& StringArrayList::Get (DWORD idx) const
+{
+ WRAPPER_NO_CONTRACT;
+ PTR_SString ppRet=(PTR_SString)m_Elements.Get(idx);
+ return *ppRet;
+}
+
+inline DWORD StringArrayList::GetCount() const
+{
+ WRAPPER_NO_CONTRACT;
+ return m_Elements.GetCount();
+}
+
+#ifndef DACCESS_COMPILE
+inline void StringArrayList::Append(const SString& string)
+{
+ CONTRACTL
+ {
+ THROWS;
+ GC_NOTRIGGER;
+ }
+ CONTRACTL_END;
+ NewHolder<SString> pAdd=new SString(string);
+ pAdd->Normalize();
+ IfFailThrow(m_Elements.Append(pAdd));
+ pAdd.SuppressRelease();
+}
+
+inline void StringArrayList::AppendIfNotThere(const SString& string)
+{
+ CONTRACTL
+ {
+ THROWS;
+ GC_NOTRIGGER;
+ }
+ CONTRACTL_END;
+ for (DWORD i=0;i<GetCount();i++)
+ {
+ if(Get(i).Equals(string))
+ return;
+ }
+ Append(string);
+}
+
+#endif
+
+
+inline StringArrayList::~StringArrayList()
+{
+ CONTRACTL
+ {
+ DESTRUCTOR_CHECK;
+ NOTHROW;
+ GC_NOTRIGGER;
+ }
+ CONTRACTL_END;
+#ifndef DACCESS_COMPILE
+ for (DWORD i=0;i< GetCount() ;i++)
+ {
+ delete (SString*)m_Elements.Get(i);
+ }
+#endif
+}
+