[maemo-commits] [maemo-commits] r11672 - in projects/haf/trunk/glib: . docs/reference docs/reference/glib docs/reference/glib/tmpl glib

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Tue May 15 18:03:02 EEST 2007
Author: mitch
Date: 2007-05-15 18:02:56 +0300 (Tue, 15 May 2007)
New Revision: 11672

Modified:
   projects/haf/trunk/glib/ChangeLog
   projects/haf/trunk/glib/docs/reference/ChangeLog
   projects/haf/trunk/glib/docs/reference/glib/glib-sections.txt
   projects/haf/trunk/glib/docs/reference/glib/tmpl/scanner.sgml
   projects/haf/trunk/glib/glib/gscanner.c
   projects/haf/trunk/glib/glib/gscanner.h
Log:
2007-05-15  Michael Natterer  <mitch at imendio.com>

	* glib/gscanner.[ch]: replace with upstream versions, backing out
	osso_g_scanner_cache_open().



Modified: projects/haf/trunk/glib/ChangeLog
===================================================================
--- projects/haf/trunk/glib/ChangeLog	2007-05-15 14:30:16 UTC (rev 11671)
+++ projects/haf/trunk/glib/ChangeLog	2007-05-15 15:02:56 UTC (rev 11672)
@@ -1,3 +1,8 @@
+2007-05-15  Michael Natterer  <mitch at imendio.com>
+
+	* glib/gscanner.[ch]: replace with upstream versions, backing out
+	osso_g_scanner_cache_open().
+
 2007-05-01  Matthias Clasen  <mclasen at redhat.com>
 
 	* === Released 2.12.12 ===

Modified: projects/haf/trunk/glib/docs/reference/ChangeLog
===================================================================
--- projects/haf/trunk/glib/docs/reference/ChangeLog	2007-05-15 14:30:16 UTC (rev 11671)
+++ projects/haf/trunk/glib/docs/reference/ChangeLog	2007-05-15 15:02:56 UTC (rev 11672)
@@ -1,3 +1,8 @@
+2007-05-15  Michael Natterer  <mitch at imendio.com>
+
+	* glib/glib-sections.txt
+	* glib/tmpl/scanner.sgml: remove osso_g_scanner_cache_open().
+
 2007-05-01  Matthias Clasen  <mclasen at redhat.com>
 
 	* === Released 2.12.12 ===

Modified: projects/haf/trunk/glib/docs/reference/glib/glib-sections.txt
===================================================================
--- projects/haf/trunk/glib/docs/reference/glib/glib-sections.txt	2007-05-15 14:30:16 UTC (rev 11671)
+++ projects/haf/trunk/glib/docs/reference/glib/glib-sections.txt	2007-05-15 15:02:56 UTC (rev 11672)
@@ -1450,9 +1450,6 @@
 g_scanner_add_symbol
 g_scanner_remove_symbol
 g_scanner_foreach_symbol
-
-<SUBSECTION>
-osso_g_scanner_cache_open
 </SECTION>
 
 <SECTION>

Modified: projects/haf/trunk/glib/docs/reference/glib/tmpl/scanner.sgml
===================================================================
--- projects/haf/trunk/glib/docs/reference/glib/tmpl/scanner.sgml	2007-05-15 14:30:16 UTC (rev 11671)
+++ projects/haf/trunk/glib/docs/reference/glib/tmpl/scanner.sgml	2007-05-15 15:02:56 UTC (rev 11672)
@@ -598,18 +598,3 @@
 @Deprecated: 2.2: Use g_scanner_scope_foreach_symbol() instead.
 
 
-<!-- ##### FUNCTION osso_g_scanner_cache_open ##### -->
-<para>
-Prepares to read the tokens from a cache file instead of parsing the input.
-</para>
-<note>
-<para>
-Do not use this function. It is only intended to be used from modified gtk+.
-</para>
-</note>
-
- at scanner: a #GScanner
- at filename: absolute filename of the cache file to use
- at Since: maemo
-
-

Modified: projects/haf/trunk/glib/glib/gscanner.c
===================================================================
--- projects/haf/trunk/glib/glib/gscanner.c	2007-05-15 14:30:16 UTC (rev 11671)
+++ projects/haf/trunk/glib/glib/gscanner.c	2007-05-15 15:02:56 UTC (rev 11672)
@@ -74,7 +74,7 @@
 
 
 /* --- variables --- */
-static GScannerConfig g_scanner_config_template =
+static const GScannerConfig g_scanner_config_template =
 {
   (
    " \t\r\n"
@@ -233,12 +233,6 @@
   scanner->scope_id = 0;
   
   scanner->msg_handler = g_scanner_msg_handler;
-
-  scanner->cache_fd = -1;
-  scanner->cache_size = 0;
-  scanner->cache_base = NULL;
-  scanner->cache_p = NULL;
-  scanner->cache_flags = 0;
   
   return scanner;
 }
@@ -275,11 +269,6 @@
   g_free (key);
 }
 
-#include <sys/mman.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-
 void
 g_scanner_destroy (GScanner	*scanner)
 {
@@ -289,17 +278,8 @@
   g_hash_table_foreach (scanner->symbol_table, 
 			g_scanner_destroy_symbol_table_entry, NULL);
   g_hash_table_destroy (scanner->symbol_table);
-  if (scanner->cache_base != NULL)
-    {
-      munmap (scanner->cache_base, scanner->cache_size);
-    }
-  else
-    {
-      g_scanner_free_value (&scanner->token, &scanner->value);
-      g_scanner_free_value (&scanner->next_token, &scanner->next_value);
-    }
-  if (scanner->cache_fd != -1)
-    close (scanner->cache_fd);
+  g_scanner_free_value (&scanner->token, &scanner->value);
+  g_scanner_free_value (&scanner->next_token, &scanner->next_value);
   g_free (scanner->config);
   g_free (scanner->buffer);
   g_free (scanner);
@@ -574,91 +554,6 @@
   g_hash_table_foreach (scanner->symbol_table, g_scanner_foreach_internal, d);
 }
 
-static gboolean
-g_scanner_get_token_cache (GScanner     *scanner,
-			   GTokenType	*token_p,
-			   GTokenValue	*value_p,
-			   guint	*line_p,
-			   guint	*position_p)
-{
-  int len;
-
-  if (scanner->cache_p == NULL)
-    return FALSE;
-
-  if (scanner->cache_p == scanner->cache_end)
-    {
-      *token_p = G_TOKEN_EOF;
-      return TRUE;
-    }
-
-#define ENSURE_AVAILABLE(scanner, bytes)			\
-  if (scanner->cache_p + (bytes) > scanner->cache_end)	\
-    goto eof
-
-  ENSURE_AVAILABLE(scanner, sizeof(GTokenType));
-
-  *token_p = *(GTokenType *)scanner->cache_p;
-  scanner->cache_p += sizeof(GTokenType);
-
-  switch (*token_p)
-    {
-    case G_TOKEN_STRING:
-    case G_TOKEN_IDENTIFIER:
-    case G_TOKEN_IDENTIFIER_NULL:
-    case G_TOKEN_COMMENT_SINGLE:
-    case G_TOKEN_COMMENT_MULTI:
-      ENSURE_AVAILABLE(scanner, sizeof(int));
-
-      len = *(int *)scanner->cache_p;
-      scanner->cache_p += sizeof(int);
-
-      ENSURE_AVAILABLE(scanner, len);
-
-      value_p->v_string = (char*)scanner->cache_p;
-      scanner->cache_p += len;
-      break;
-
-    case G_TOKEN_ERROR:
-    case G_TOKEN_EOF:
-      break;
-
-    case G_TOKEN_LEFT_PAREN:
-    case G_TOKEN_RIGHT_PAREN:
-    case G_TOKEN_LEFT_CURLY:
-    case G_TOKEN_RIGHT_CURLY:
-    case G_TOKEN_LEFT_BRACE:
-    case G_TOKEN_RIGHT_BRACE:
-    case G_TOKEN_EQUAL_SIGN:
-    case G_TOKEN_COMMA:
-      value_p->v_int64 = *token_p;
-      break;
-
-    default:
-      if (*token_p < G_TOKEN_LAST)
-	{
-	  ENSURE_AVAILABLE(scanner, sizeof(GTokenValue));
-
-/*	  *value_p = *(GTokenValue *)scanner->cache_p;*/
-          memcpy(value_p, scanner->cache_p, sizeof(GTokenValue));
-	  scanner->cache_p += sizeof(GTokenValue);
-	}
-      else
-	value_p->v_int64 = 0;
-
-      break;
-    }
-
-  return TRUE;
-
-eof:
-  *token_p = G_TOKEN_ERROR;
-  value_p->v_error = G_ERR_UNEXP_EOF;
-  return TRUE;
-
-#undef ENSURE_AVAILABLE
-}
-
 GTokenType
 g_scanner_peek_next_token (GScanner	*scanner)
 {
@@ -668,79 +563,16 @@
     {
       scanner->next_line = scanner->line;
       scanner->next_position = scanner->position;
-      if (!g_scanner_get_token_cache (scanner,
-				      &scanner->next_token,
-				      &scanner->next_value,
-				      &scanner->next_line,
-				      &scanner->next_position))
-	g_scanner_get_token_i (scanner,
-			       &scanner->next_token,
-			       &scanner->next_value,
-			       &scanner->next_line,
-			       &scanner->next_position);
+      g_scanner_get_token_i (scanner,
+			     &scanner->next_token,
+			     &scanner->next_value,
+			     &scanner->next_line,
+			     &scanner->next_position);
     }
   
   return scanner->next_token;
 }
 
-static void
-g_scanner_cache_token (GScanner *scanner)
-{
-  int len;
-  int lena;
-
-  if (scanner->cache_fd == -1 || scanner->cache_p != NULL)
-    return;
-
-  g_assert (scanner->token != G_TOKEN_ERROR);
-
-  /* FIXME: error handling */
-
-  write (scanner->cache_fd, &scanner->token, sizeof(scanner->token));
-
-  switch (scanner->token)
-    {
-    case G_TOKEN_STRING:
-    case G_TOKEN_IDENTIFIER:
-    case G_TOKEN_IDENTIFIER_NULL:
-    case G_TOKEN_COMMENT_SINGLE:
-    case G_TOKEN_COMMENT_MULTI:
-      /* pad strings to multiple of G_MEM_ALIGN */
-      lena = len = strlen (scanner->value.v_string) + 1;
-      if (lena % G_MEM_ALIGN)
-	lena += G_MEM_ALIGN - (lena % G_MEM_ALIGN);
-
-      write (scanner->cache_fd, &lena, sizeof(lena));
-      write (scanner->cache_fd, scanner->value.v_string, len);
-      if (lena > len)
-	write (scanner->cache_fd, "\0\0\0\0\0\0\0\0", lena-len);
-      break;
-
-    case G_TOKEN_EOF:
-      close (scanner->cache_fd);
-      scanner->cache_fd = -1;
-      break;
-
-    case G_TOKEN_LEFT_PAREN:
-    case G_TOKEN_RIGHT_PAREN:
-    case G_TOKEN_LEFT_CURLY:
-    case G_TOKEN_RIGHT_CURLY:
-    case G_TOKEN_LEFT_BRACE:
-    case G_TOKEN_RIGHT_BRACE:
-    case G_TOKEN_EQUAL_SIGN:
-    case G_TOKEN_COMMA:
-      break;
-
-    default:
-      /* FIXME: check alignment requirements (double probably needs 8 bytes) */
-      if (scanner->token < G_TOKEN_LAST)
-	write (scanner->cache_fd, &scanner->value, sizeof(scanner->value));
-      else
-	g_assert (scanner->token == scanner->value.v_int);
-      break;
-    }
-}
-
 GTokenType
 g_scanner_get_next_token (GScanner	*scanner)
 {
@@ -748,8 +580,7 @@
   
   if (scanner->next_token != G_TOKEN_NONE)
     {
-      if (scanner->cache_p == NULL)
-	g_scanner_free_value (&scanner->token, &scanner->value);
+      g_scanner_free_value (&scanner->token, &scanner->value);
       
       scanner->token = scanner->next_token;
       scanner->value = scanner->next_value;
@@ -757,23 +588,12 @@
       scanner->position = scanner->next_position;
       scanner->next_token = G_TOKEN_NONE;
     }
-  else if (g_scanner_get_token_cache (scanner,
-				      &scanner->token,
-				      &scanner->value,
-				      &scanner->line,
-				      &scanner->position))
-    {
-      return scanner->token;
-    }
   else
     g_scanner_get_token_i (scanner,
 			   &scanner->token,
 			   &scanner->value,
 			   &scanner->line,
 			   &scanner->position);
-
-  if(scanner->cache_flags & CACHE_FLAGS_WRITE)
-    g_scanner_cache_token (scanner);
   
   return scanner->token;
 }
@@ -827,61 +647,6 @@
 }
 
 void
-osso_g_scanner_cache_open (GScanner *scanner, gchar *filename)
-{
-  char        basename[128];
-  struct stat st;
-  int         fd;
-  gsize       cache_size = 0;
-  void       *cache_p = NULL;
-
-  if (fstat (scanner->input_fd, &st) == -1)
-    return;
-
-  /* FIXME: create cache only if explicitly asked for (to be used by a
-   * standalone application, for example.)  The cache filename should also be
-   * derived from the gtkrc path, but it's not available without modifications
-   * to gtk+ */
-
-  if(getenv("GSCANNERCACHE_CREATE"))
-    {
-      /* we don't care if this file exists or not, just delete it */
-      remove (filename);
-
-      fd = open (filename, O_CREAT|O_EXCL|O_WRONLY, 0666);
-      scanner->cache_flags |= CACHE_FLAGS_WRITE;
-    }
-  else
-    {
-      fd = open (filename, O_RDONLY);
-      if (fd != -1)
-	{
-	  if (fstat (fd, &st) == 0)
-	    {
-	      void *ptr;
-
-	      ptr = mmap (NULL, st.st_size, PROT_READ, MAP_SHARED, fd, 0);
-	      if (ptr != MAP_FAILED)
-		{
-		  cache_p = ptr;
-		  cache_size = st.st_size;
-		}
-	    }
-
-	  /* after mmap the file descriptor is no longer needer */
-	  close (fd);
-	  fd = -1;
-	}
-    }
-
-  scanner->cache_fd = fd;
-  scanner->cache_size = cache_size;
-  scanner->cache_base = cache_p;
-  scanner->cache_p = cache_p;
-  scanner->cache_end = cache_p + cache_size;
-}
-
-void
 g_scanner_input_file (GScanner *scanner,
 		      gint	input_fd)
 {
@@ -1940,8 +1705,7 @@
   
   if (gstring)
     {
-      value.v_string = gstring->str;
-      g_string_free (gstring, FALSE);
+      value.v_string = g_string_free (gstring, FALSE);
       gstring = NULL;
     }
   

Modified: projects/haf/trunk/glib/glib/gscanner.h
===================================================================
--- projects/haf/trunk/glib/glib/gscanner.h	2007-05-15 14:30:16 UTC (rev 11671)
+++ projects/haf/trunk/glib/glib/gscanner.h	2007-05-15 15:02:56 UTC (rev 11672)
@@ -120,12 +120,6 @@
   guint		v_error;
 };
 
-/* cache flags, private */
-typedef enum
-{
-  CACHE_FLAGS_WRITE   = 1
-} GScannerCacheFlags;
-
 struct	_GScannerConfig
 {
   /* Character sets
@@ -206,22 +200,12 @@
   
   /* handler function for _warn and _error */
   GScannerMsgFunc	msg_handler;
-
-  /* caching, private */
-  gint                  cache_fd;
-  GScannerCacheFlags    cache_flags;
-  gsize                 cache_size;
-  gpointer              cache_base;
-  const gchar          *cache_p;
-  const gchar          *cache_end;
 };
 
 GScanner*	g_scanner_new			(const GScannerConfig *config_templ);
 void		g_scanner_destroy		(GScanner	*scanner);
 void		g_scanner_input_file		(GScanner	*scanner,
 						 gint		input_fd);
-void		osso_g_scanner_cache_open	(GScanner	*scanner,
-						 gchar		*filename);
 void		g_scanner_sync_file_offset	(GScanner	*scanner);
 void		g_scanner_input_text		(GScanner	*scanner,
 						 const	gchar	*text,


More information about the maemo-commits mailing list