ExternalLibraryFunction.st
changeset 22144 e3a0e9df945f
parent 22142 e2452d90f7ab
child 22162 aeace092a850
--- a/ExternalLibraryFunction.st	Tue Aug 01 15:13:47 2017 +0200
+++ b/ExternalLibraryFunction.st	Tue Aug 01 15:33:44 2017 +0200
@@ -262,10 +262,11 @@
     |oldPath newPath|
 
     oldPath := self dllPath.
+    oldPath isNil ifTrue:[ oldPath := OrderedCollection new ].
     (oldPath includes:aDirectoryPathName) ifFalse:[
-	newPath := oldPath asOrderedCollection.
-	newPath add:aDirectoryPathName.
-	self dllPath:newPath
+        newPath := oldPath asOrderedCollection.
+        newPath add:aDirectoryPathName.
+        self dllPath:newPath
     ]
 
     "
@@ -412,7 +413,9 @@
     |oldPath|
 
     oldPath := self dllPath.
-    self dllPath:(oldPath asOrderedCollection copyWithout:aDirectoryPathName)
+    oldPath notNil ifTrue:[
+        self dllPath:(oldPath asOrderedCollection copyWithout:aDirectoryPathName)
+    ].
 
     "
      self dllPath.
@@ -1034,10 +1037,13 @@
         "First ask the class defining the ExternalFunction for the location of the dlls ..."
         dllPaths := #().
         owningClass notNil ifTrue:[
-            dllPaths := owningClass dllPath.
+            dllPaths := owningClass dllPath ? #().
         ].
         ".. then ask the system"
-        dllPaths := dllPaths, self class dllPath.
+        dllPaths := dllPaths, (self class dllPath ? #()).
+        ".. and the settings"
+        dllPaths := dllPaths,(UserPreferences current dllPath ? #()).
+
         dllPaths do:[:eachDirectory |
             |libraryName|