]> git.wincent.com - wikitext.git/commitdiff
Extract ary_free() out into separate file
authorWincent Colaiuta <win@wincent.com>
Sat, 23 Feb 2008 14:22:06 +0000 (15:22 +0100)
committerWincent Colaiuta <win@wincent.com>
Sat, 23 Feb 2008 14:22:06 +0000 (15:22 +0100)
Make this a non-inline function so that its address can be passed to the
Data_Wrap_Struct() function.

Signed-off-by: Wincent Colaiuta <win@wincent.com>
Rakefile
ext/ary.c [new file with mode: 0644]
ext/ary.h
ext/depend

index cb8f9596b215eb53e611094e171b391bf0ee6194..685491b3a5e87b207c567138ccd85a65545dc8d1 100644 (file)
--- a/Rakefile
+++ b/Rakefile
@@ -34,6 +34,7 @@ built_extension     = "ext/wikitext.#{Config::CONFIG['DLEXT']}" # wikitext.bundl
 extension_files     = FileList[
   'ext/Makefile',
   'ext/ary.h',
+  'ext/ary.c',
   'ext/parser.c',
   'ext/parser.h',
   'ext/str.h',
diff --git a/ext/ary.c b/ext/ary.c
new file mode 100644 (file)
index 0000000..4f3885d
--- /dev/null
+++ b/ext/ary.c
@@ -0,0 +1,21 @@
+// Copyright 2008 Wincent Colaiuta
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+#include "ary.h"
+
+void ary_free(ary_t *ary)
+{
+    free(ary->entries);
+    free(ary);
+}
index 91181edc7c4e3028af9e6c18cf381f5220c607b4..8350465f3cb6245bdefc321101a0799f87c06815 100644 (file)
--- a/ext/ary.h
+++ b/ext/ary.h
@@ -35,11 +35,8 @@ inline ary_t *ary_new(void)
     return ary;
 }
 
-inline void ary_free(ary_t *ary)
-{
-    free(ary->entries);
-    free(ary);
-}
+// this method not inlined so its address can be passed to the Data_Wrap_Struct function.
+void ary_free(ary_t *ary);
 
 inline int ary_entry(ary_t *ary, int idx)
 {
index 7c3530272b205bfd0bbc2a95178452a1963683ed..ddf47cad9ab2efded3343ab000e55a589044ac32 100644 (file)
@@ -16,7 +16,8 @@
 
 CFLAGS += -std=gnu99
 
-parser.o : ary.h parser.c parser.h token.h str.h wikitext.h wikitext_ragel.h
+ary.o : ary.c ary.h
+parser.o : ary.c ary.h parser.c parser.h token.h str.h wikitext.h wikitext_ragel.h
 token.o : token.c token.h wikitext.h
 wikitext.o : parser.h token.h wikitext.c wikitext.h wikitext_ragel.h
 wikitext_ragel.o : token.h wikitext.h wikitext_ragel.h wikitext_ragel.c