diff options
author | Soumith Chintala <soumith@gmail.com> | 2015-11-12 04:18:07 +0300 |
---|---|---|
committer | Soumith Chintala <soumith@gmail.com> | 2015-11-12 04:18:07 +0300 |
commit | a5c365f9c86281807a47f43ce5aebbbf40e6719d (patch) | |
tree | f2e1e19b6596d244417d31a6a38f7ed7d42bb57a | |
parent | 89bbb5a5aa32e6ba012f1d03812cfde1d9024410 (diff) | |
parent | 599e4adb48b890dd4a4657e76396469d72c8045b (diff) |
Merge pull request #21 from torch/lua52fix
fixing graphviz dot for lua51/lua52 + luaffifb
-rw-r--r-- | graphviz.lua | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/graphviz.lua b/graphviz.lua index bff189e..14115cb 100644 --- a/graphviz.lua +++ b/graphviz.lua @@ -32,6 +32,9 @@ if ffiOk then extern int gvRender(GVC_t *context, graph_t *g, const char *format, FILE *out); extern int gvFreeLayout(GVC_t *context, graph_t *g); extern int gvFreeContext(GVC_t *context); + + FILE * fopen ( const char * filename, const char * mode ); + int fclose ( FILE * stream ); ]] graphvizOk, graphviz = pcall(function() return ffi.load('libgvc') end) if not graphvizOk then @@ -151,10 +154,15 @@ function graph.graphvizFile(g, algorithm, fname) local context = graphviz.gvContext() local graphvizGraph = cgraph.agmemread(g:todot()) + assert(0 == graphviz.gvLayout(context, graphvizGraph, algorithm), - "graphviz layout failed") - assert(0 == graphviz.gvRender(context, graphvizGraph, rendertype, io.open(fname, 'w')), - "graphviz render failed") + "graphviz layout failed") + + local fhandle = ffi.C.fopen(fname, 'w') + local ret = graphviz.gvRender(context, graphvizGraph, rendertype, fhandle) + ffi.C.fclose(fhandle) + assert(0 == ret, "graphviz render failed") + graphviz.gvFreeLayout(context, graphvizGraph) cgraph.agclose(graphvizGraph) graphviz.gvFreeContext(context) |