annotate R/rdyncall/demo/R_malloc.R @ 29:6cc2b7fc7ea2

bigger pydc update: - cleanups and refactoring - python 2 fixes in var conversions (especially w/ respect to int vs long) - fix to pydc.free() which didn't work at all - fix to return python bool as actual bool - test lib covering all conversions (manual verification, though :-/)
author Tassilo Philipp
date Wed, 08 Apr 2020 22:17:43 +0200
parents 0cfcc391201f
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
1 # Package: rdyncall
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
2 # File: demo/R_malloc.R
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
3 # Description: using R's memory allocator directly in R
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
4
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
5 dynbind("R","R_chk_calloc(ii)p;R_chk_free(p)v;")
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
6 malloc <- function(size)
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
7 {
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
8 x <- R_chk_calloc(as.integer(size),1L)
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
9 reg.finalizer(x, R_chk_free)
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
10 return(x)
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
11 }
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
12
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
13 x <- malloc(1024)
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
14 x <- NULL
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
15 gc()
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
16