summaryrefslogtreecommitdiff
path: root/source/core
diff options
context:
space:
mode:
Diffstat (limited to 'source/core')
-rw-r--r--source/core/core.vcxproj3
-rw-r--r--source/core/core.vcxproj.filters9
-rw-r--r--source/core/smart-pointer.h10
3 files changed, 8 insertions, 14 deletions
diff --git a/source/core/core.vcxproj b/source/core/core.vcxproj
index ecd8ee07b..3dbfaac3f 100644
--- a/source/core/core.vcxproj
+++ b/source/core/core.vcxproj
@@ -182,12 +182,9 @@
<ClInclude Include="list.h" />
<ClInclude Include="platform.h" />
<ClInclude Include="secure-crt.h" />
- <ClInclude Include="slang-com-ptr.h" />
- <ClInclude Include="slang-defines.h" />
<ClInclude Include="slang-free-list.h" />
<ClInclude Include="slang-io.h" />
<ClInclude Include="slang-math.h" />
- <ClInclude Include="slang-result.h" />
<ClInclude Include="slang-string-util.h" />
<ClInclude Include="slang-string.h" />
<ClInclude Include="smart-pointer.h" />
diff --git a/source/core/core.vcxproj.filters b/source/core/core.vcxproj.filters
index 39a164770..27b0fe82f 100644
--- a/source/core/core.vcxproj.filters
+++ b/source/core/core.vcxproj.filters
@@ -45,12 +45,6 @@
<ClInclude Include="secure-crt.h">
<Filter>Header Files</Filter>
</ClInclude>
- <ClInclude Include="slang-com-ptr.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="slang-defines.h">
- <Filter>Header Files</Filter>
- </ClInclude>
<ClInclude Include="slang-free-list.h">
<Filter>Header Files</Filter>
</ClInclude>
@@ -60,9 +54,6 @@
<ClInclude Include="slang-math.h">
<Filter>Header Files</Filter>
</ClInclude>
- <ClInclude Include="slang-result.h">
- <Filter>Header Files</Filter>
- </ClInclude>
<ClInclude Include="slang-string-util.h">
<Filter>Header Files</Filter>
</ClInclude>
diff --git a/source/core/smart-pointer.h b/source/core/smart-pointer.h
index bc1683a5b..4c6744d1b 100644
--- a/source/core/smart-pointer.h
+++ b/source/core/smart-pointer.h
@@ -6,6 +6,8 @@
#include <assert.h>
+#include "../../slang.h"
+
namespace Slang
{
// TODO: Need to centralize these typedefs
@@ -199,13 +201,17 @@ namespace Slang
T* detach()
{
- if (pointer)
- dynamic_cast<RefObject*>(pointer)->decreaseReference();
auto rs = pointer;
pointer = nullptr;
return rs;
}
+ /// Get ready for writing (nulls contents)
+ SLANG_FORCE_INLINE T** writeRef() { *this = nullptr; return &pointer; }
+
+ /// Get for read access
+ SLANG_FORCE_INLINE T*const* readRef() const { return &pointer; }
+
private:
T* pointer;