aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/ext_depends/d2sqlite3
diff options
context:
space:
mode:
Diffstat (limited to 'src/ext_depends/d2sqlite3')
-rw-r--r--src/ext_depends/d2sqlite3/.github/workflows/documentation.yaml58
-rw-r--r--src/ext_depends/d2sqlite3/.github/workflows/main.yaml61
-rw-r--r--src/ext_depends/d2sqlite3/source/d2sqlite3/internal/memory.d29
3 files changed, 73 insertions, 75 deletions
diff --git a/src/ext_depends/d2sqlite3/.github/workflows/documentation.yaml b/src/ext_depends/d2sqlite3/.github/workflows/documentation.yaml
new file mode 100644
index 0000000..97fa25e
--- /dev/null
+++ b/src/ext_depends/d2sqlite3/.github/workflows/documentation.yaml
@@ -0,0 +1,58 @@
+# Documentation build: Only runs on Linux
+# Still need to install dependencies and the compiler because DDOX
+# does a full build
+name: Documentation
+on: [push, pull_request]
+
+jobs:
+ doc:
+ name: Build and upload documentation
+ runs-on: ubuntu-latest
+ timeout-minutes: 30
+ steps:
+
+ # Checkout this repository and its submodules
+ - name: Checkout repository
+ uses: actions/checkout@v2
+
+ # Install the D compiler
+ - name: Prepare compiler
+ uses: dlang-community/setup-dlang@v1
+ with:
+ compiler: ldc-latest
+
+ - name: 'Install dependencies & setup environment'
+ run: |
+ sudo apt-get update
+ sudo apt-get install libsqlite3-dev
+
+ - name: Build documentation
+ run: |
+ dub build -b ddox
+ # Generate the HTML to docs
+ dub run ddox -- generate-html docs.json ./docs/
+
+ - name: Upload documentation artifact
+ uses: actions/upload-artifact@v2
+ with:
+ name: documentation
+ path: docs/
+
+ - name: Deploy documentation
+ if: github.event_name == 'push'
+ run: |
+ # Remove gh-branch if it already exists, check it out
+ git branch -D gh-pages || true
+ git checkout --orphan gh-pages
+ # Remove all staged files - We only need the docs
+ git rm -rf $(git ls-files)
+ # We can have some leftover files (e.g. build)
+ # So add docs (which is only what we need), then `git mv` it.
+ git add docs/
+ git mv -k docs/* ./
+ # Configure user (because persist-credentials does not persist everything...)
+ git config --global user.name "${{ github.actor }}"
+ git config --global user.email "${{ github.actor }}@users.noreply.github.com"
+ # We're done
+ git commit -m "Documentation for commit ${{ github.sha }}"
+ git push -f ${{ github.event.repository.clone_url }} gh-pages:gh-pages
diff --git a/src/ext_depends/d2sqlite3/.github/workflows/main.yaml b/src/ext_depends/d2sqlite3/.github/workflows/main.yaml
index 103d945..28eaebe 100644
--- a/src/ext_depends/d2sqlite3/.github/workflows/main.yaml
+++ b/src/ext_depends/d2sqlite3/.github/workflows/main.yaml
@@ -15,8 +15,9 @@ jobs:
# TODO: FIXME. Requires fixes to the dub.sdl to work on Windows
# os: [ ubuntu-18.04, macOS-10.15, windows-2019 ]
os: [ ubuntu-18.04, macOS-10.15 ]
- # Oldest supported FE is 2.088.1 because older DMD don't work on macOS-10.15
- dc: [ ldc-master, ldc-latest, ldc-1.21.0, dmd-master, dmd-latest, dmd-2.088.1 ]
+ # Oldest supported FE is 2.090.1 because we need `GC.inFinalizer`
+ # https://dlang.org/changelog/2.090.0.html
+ dc: [ ldc-master, ldc-latest, ldc-1.21.0, dmd-master, dmd-latest, dmd-2.090.1 ]
runs-on: ${{ matrix.os }}
timeout-minutes: 30
@@ -69,59 +70,3 @@ jobs:
run: |
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
dub test -c ci
-
- # Documentation build: Only runs on Linux
- # Still need to install dependencies and the compiler because DDOX
- # does a full build
- doc:
- name: Build and upload documentation
- needs: main
- runs-on: ubuntu-latest
- timeout-minutes: 30
- steps:
-
- # Checkout this repository and its submodules
- - name: Checkout repository
- uses: actions/checkout@v2
-
- # Install the D compiler
- - name: Prepare compiler
- uses: dlang-community/setup-dlang@v1
- with:
- compiler: ldc-latest
-
- - name: 'Install dependencies & setup environment'
- run: |
- sudo apt-get update
- sudo apt-get install libsqlite3-dev
-
- - name: Build documentation
- run: |
- dub build -b ddox
- # Generate the HTML to docs
- dub run ddox -- generate-html docs.json ./docs/
-
- - name: Upload documentation artifact
- uses: actions/upload-artifact@v2
- with:
- name: documentation
- path: docs/
-
- - name: Deploy documentation
- if: github.event_name == 'push'
- run: |
- # Remove gh-branch if it already exists, check it out
- git branch -D gh-pages || true
- git checkout --orphan gh-pages
- # Remove all staged files - We only need the docs
- git rm -rf $(git ls-files)
- # We can have some leftover files (e.g. build)
- # So add docs (which is only what we need), then `git mv` it.
- git add docs/
- git mv -k docs/* ./
- # Configure user (because persist-credentials does not persist everything...)
- git config --global user.name "${{ github.actor }}"
- git config --global user.email "${{ github.actor }}@users.noreply.github.com"
- # We're done
- git commit -m "Documentation for commit ${{ github.sha }}"
- git push -f ${{ github.event.repository.clone_url }} gh-pages:gh-pages
diff --git a/src/ext_depends/d2sqlite3/source/d2sqlite3/internal/memory.d b/src/ext_depends/d2sqlite3/source/d2sqlite3/internal/memory.d
index 664dbdd..afc3a4b 100644
--- a/src/ext_depends/d2sqlite3/source/d2sqlite3/internal/memory.d
+++ b/src/ext_depends/d2sqlite3/source/d2sqlite3/internal/memory.d
@@ -66,22 +66,17 @@ extern(C) void releaseMem(const void* ptr)
// Adapted from https://p0nce.github.io/d-idioms/#GC-proof-resource-class
void ensureNotInGC(T)(string info = null) nothrow
{
- import core.exception : InvalidMemoryOperationError;
- try
- {
- import core.memory : GC;
- cast(void) GC.malloc(1);
+ import core.memory : GC;
+ import core.stdc.stdio : fprintf, stderr;
+ import core.stdc.stdlib : exit;
+
+ if (!GC.inFinalizer)
return;
- }
- catch(InvalidMemoryOperationError e)
- {
- import core.stdc.stdio : fprintf, stderr;
- import core.stdc.stdlib : exit;
- fprintf(stderr,
- "Error: clean-up of %s incorrectly depends on destructors called by the GC.\n",
- T.stringof.ptr);
- if (info)
- fprintf(stderr, "Info: %s\n", info.ptr);
- assert(false);
- }
+
+ fprintf(stderr,
+ "Error: clean-up of %s incorrectly depends on destructors called by the GC.\n",
+ T.stringof.ptr);
+ if (info)
+ fprintf(stderr, "Info: %s\n", info.ptr);
+ assert(false);
}