From 3e73c64177d088d49bd3577de4f982c5928c1f55 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Remko=20Tron=C3=A7on?= <git@el-tramo.be>
Date: Sun, 23 Dec 2012 18:06:06 +0100
Subject: Assert when APPDATA or USERPROFILE is null.

This seems to sometimes happen in our CI builds. This should make
it easier to at least detect that this is the case.

Change-Id: Iab59bbc10a14e350df9ef240c8a862ce8ea68794

diff --git a/SwifTools/Application/WindowsApplicationPathProvider.cpp b/SwifTools/Application/WindowsApplicationPathProvider.cpp
index 8514fa7..730a57a 100644
--- a/SwifTools/Application/WindowsApplicationPathProvider.cpp
+++ b/SwifTools/Application/WindowsApplicationPathProvider.cpp
@@ -7,6 +7,7 @@
 #include <SwifTools/Application/WindowsApplicationPathProvider.h>
 
 #include <windows.h>
+#include <cassert>
 
 namespace Swift {
 
@@ -15,4 +16,20 @@ WindowsApplicationPathProvider::WindowsApplicationPathProvider(const std::string
 	resourceDirs.push_back(getExecutableDir() / "../resources"); // Development
 }
 
+boost::filesystem::path WindowsApplicationPathProvider::getDataDir() const {
+	char* appDirRaw = getenv("APPDATA");
+	assert(appDirRaw);
+	boost::filesystem::path result(boost::filesystem::path(appDirRaw) / getApplicationName());
+	boost::filesystem::create_directory(result);
+	return result;
+}
+
+boost::filesystem::path WindowsApplicationPathProvider::getHomeDir() const {
+	//FIXME: This should be My Documents 
+	char* homeDirRaw = getenv("USERPROFILE");
+	assert(homeDirRaw);
+	return boost::filesystem::path(homeDirRaw);
+}
+
+
 }
diff --git a/SwifTools/Application/WindowsApplicationPathProvider.h b/SwifTools/Application/WindowsApplicationPathProvider.h
index f288326..a4e8668 100644
--- a/SwifTools/Application/WindowsApplicationPathProvider.h
+++ b/SwifTools/Application/WindowsApplicationPathProvider.h
@@ -13,19 +13,8 @@ namespace Swift {
 		public:
 			WindowsApplicationPathProvider(const std::string& name);
 
-			boost::filesystem::path getDataDir() const {
-				char* appDirRaw = getenv("APPDATA");
-				boost::filesystem::path result(boost::filesystem::path(appDirRaw) / getApplicationName());
-				boost::filesystem::create_directory(result);
-				return result;
-			}
-
-			boost::filesystem::path getHomeDir() const {
-				//FIXME: This should be My Documents 
-				
-				char* homeDirRaw = getenv("USERPROFILE");
-				return boost::filesystem::path(homeDirRaw);
-			}
+			boost::filesystem::path getDataDir() const;
+			boost::filesystem::path getHomeDir() const;
 
 			virtual std::vector<boost::filesystem::path> getResourceDirs() const {
 				return resourceDirs;
-- 
cgit v0.10.2-6-g49f6