diff --git a/jni/pjproject-android/.svn/pristine/50/50a4e3badf405c5526c9cce511d206047177c465.svn-base b/jni/pjproject-android/.svn/pristine/50/50a4e3badf405c5526c9cce511d206047177c465.svn-base
new file mode 100644
index 0000000..b7cf180
--- /dev/null
+++ b/jni/pjproject-android/.svn/pristine/50/50a4e3badf405c5526c9cce511d206047177c465.svn-base
@@ -0,0 +1,105 @@
+/* $Id$ */
+/* 
+ * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
+ * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
+ *
+ * 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 2 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, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 
+ */
+#ifndef __POOL_STACK_H__
+#define __POOL_STACK_H__
+
+#include <pj/pool.h>
+
+/**
+ * @defgroup PJ_POOL_BUFFER Stack/Buffer Based Memory Pool Allocator
+ * @ingroup PJ_POOL_GROUP
+ * @brief Stack/buffer based pool.
+ *
+ * This section describes an implementation of memory pool which uses
+ * memory allocated from the stack. Application creates this pool
+ * by specifying a buffer (which can be allocated from static memory or
+ * stack variable), and then use normal pool API to access/use the pool.
+ *
+ * If the buffer specified during pool creation is a buffer located in the
+ * stack, the pool will be invalidated (or implicitly destroyed) when the
+ * execution leaves the enclosing block containing the buffer. Note
+ * that application must make sure that any objects allocated from this
+ * pool (such as mutexes) have been destroyed before the pool gets
+ * invalidated.
+ *
+ * Sample usage:
+ *
+ * \code
+  #include <pjlib.h>
+
+  static void test()
+  {
+    char buffer[500];
+    pj_pool_t *pool;
+    void *p;
+
+    pool = pj_pool_create_on_buf("thepool", buffer, sizeof(buffer));
+
+    // Use the pool as usual
+    p = pj_pool_alloc(pool, ...);
+    ...
+
+    // No need to release the pool
+  }
+
+  int main()
+  {
+    pj_init();
+    test();
+    return 0;
+  }
+
+   \endcode
+ *
+ * @{
+ */
+
+PJ_BEGIN_DECL
+
+/**
+ * Create the pool using the specified buffer as the pool's memory.
+ * Subsequent allocations made from the pool will use the memory from
+ * this buffer.
+ *
+ * If the buffer specified in the parameter is a buffer located in the
+ * stack, the pool will be invalid (or implicitly destroyed) when the
+ * execution leaves the enclosing block containing the buffer. Note
+ * that application must make sure that any objects allocated from this
+ * pool (such as mutexes) have been destroyed before the pool gets
+ * invalidated.
+ *
+ * @param name	    Optional pool name.
+ * @param buf	    Buffer to be used by the pool.
+ * @param size	    The size of the buffer.
+ *
+ * @return	    The memory pool instance.
+ */
+PJ_DECL(pj_pool_t*) pj_pool_create_on_buf(const char *name,
+					  void *buf,
+					  pj_size_t size);
+
+PJ_END_DECL
+
+/**
+ * @}
+ */
+
+#endif	/* __POOL_STACK_H__ */
+
