diff R/rdc/demo/malloc.R @ 0:0cfcc391201f

initial from svn dyncall-1745
author Daniel Adler
date Thu, 19 Mar 2015 22:26:28 +0100
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/R/rdc/demo/malloc.R	Thu Mar 19 22:26:28 2015 +0100
@@ -0,0 +1,27 @@
+# File: rdc/demo/malloc.R
+# Description: sample demo to get malloc/free functions
+ 
+if( .Platform$OS.type == "windows" ) {
+ .windir <- paste(Sys.getenv("windir")[[1]],"\\system32\\",sep="")
+ .libC <- paste(.windir,"msvcrt",sep="")
+} else {
+  sysname <- Sys.info()[["sysname"]]
+  if (sysname == "Darwin")
+  {
+  .libC <- "/usr/lib/libc.dylib"
+  } else { 
+  .libC <- "/lib/libc.so.6"
+  }
+}
+
+dyn.load(.libC)
+
+bind <- function(name, signature)
+{
+ address <- getNativeSymbolInfo(name)$address
+ assign(name, function(...) rdcCall(address,signature,...), parent.frame() )
+}
+ 
+bind("malloc","i)p")
+bind("free","p)v")
+