summaryrefslogtreecommitdiff
path: root/lib/skin_parser
diff options
context:
space:
mode:
Diffstat (limited to 'lib/skin_parser')
-rw-r--r--lib/skin_parser/skin_buffer.c13
-rw-r--r--lib/skin_parser/skin_buffer.h4
-rw-r--r--lib/skin_parser/skin_parser.c15
-rw-r--r--lib/skin_parser/skin_parser.h1
4 files changed, 23 insertions, 10 deletions
diff --git a/lib/skin_parser/skin_buffer.c b/lib/skin_parser/skin_buffer.c
index b0910976e2..05cdc0ce03 100644
--- a/lib/skin_parser/skin_buffer.c
+++ b/lib/skin_parser/skin_buffer.c
@@ -56,3 +56,16 @@ void* skin_buffer_alloc(size_t size)
#endif
return retval;
}
+
+
+#ifdef ROCKBOX
+/* get the number of bytes currently being used */
+size_t skin_buffer_usage(void)
+{
+ return buffer_front - buffer;
+}
+size_t skin_buffer_freespace(void)
+{
+ return SKIN_BUFFER_SIZE - skin_buffer_usage();
+}
+#endif
diff --git a/lib/skin_parser/skin_buffer.h b/lib/skin_parser/skin_buffer.h
index fa8f149c71..ff477da539 100644
--- a/lib/skin_parser/skin_buffer.h
+++ b/lib/skin_parser/skin_buffer.h
@@ -28,4 +28,8 @@
void skin_buffer_init(size_t size);
/* Allocate size bytes from the buffer */
void* skin_buffer_alloc(size_t size);
+
+/* get the number of bytes currently being used */
+size_t skin_buffer_usage(void);
+size_t skin_buffer_freespace(void);
#endif
diff --git a/lib/skin_parser/skin_parser.c b/lib/skin_parser/skin_parser.c
index f7ff4ad693..9c360231e1 100644
--- a/lib/skin_parser/skin_parser.c
+++ b/lib/skin_parser/skin_parser.c
@@ -51,6 +51,8 @@ static int skin_parse_conditional(struct skin_element* element,
static int skin_parse_comment(struct skin_element* element, char** document);
static struct skin_element* skin_parse_code_as_arg(char** document);
+
+
struct skin_element* skin_parse(const char* document)
{
@@ -836,15 +838,10 @@ static struct skin_element* skin_parse_code_as_arg(char** document)
/* Memory management */
-char* skin_alloc(size_t size)
-{
- return skin_buffer_alloc(size);
-}
-
struct skin_element* skin_alloc_element()
{
struct skin_element* retval = (struct skin_element*)
- skin_alloc(sizeof(struct skin_element));
+ skin_buffer_alloc(sizeof(struct skin_element));
retval->type = UNKNOWN;
retval->next = NULL;
retval->tag = NULL;
@@ -858,19 +855,19 @@ struct skin_element* skin_alloc_element()
struct skin_tag_parameter* skin_alloc_params(int count)
{
size_t size = sizeof(struct skin_tag_parameter) * count;
- return (struct skin_tag_parameter*)skin_alloc(size);
+ return (struct skin_tag_parameter*)skin_buffer_alloc(size);
}
char* skin_alloc_string(int length)
{
- return (char*)skin_alloc(sizeof(char) * (length + 1));
+ return (char*)skin_buffer_alloc(sizeof(char) * (length + 1));
}
struct skin_element** skin_alloc_children(int count)
{
return (struct skin_element**)
- skin_alloc(sizeof(struct skin_element*) * count);
+ skin_buffer_alloc(sizeof(struct skin_element*) * count);
}
void skin_free_tree(struct skin_element* root)
diff --git a/lib/skin_parser/skin_parser.h b/lib/skin_parser/skin_parser.h
index ec0f3b9bfc..95a22a6d53 100644
--- a/lib/skin_parser/skin_parser.h
+++ b/lib/skin_parser/skin_parser.h
@@ -122,7 +122,6 @@ struct skin_element
struct skin_element* skin_parse(const char* document);
/* Memory management functions */
-char *skin_alloc(size_t size);
struct skin_element* skin_alloc_element(void);
struct skin_element** skin_alloc_children(int count);
struct skin_tag_parameter* skin_alloc_params(int count);