gnash-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnash-commit] gnash ChangeLog server/as_object.cpp server/as_...


From: Sandro Santilli
Subject: [Gnash-commit] gnash ChangeLog server/as_object.cpp server/as_...
Date: Fri, 15 Feb 2008 10:12:55 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  08/02/15 10:12:55

Modified files:
        .              : ChangeLog 
        server         : as_object.cpp as_object.h sprite_instance.cpp 

Log message:
                * server/as_object.{cpp,h}: add getURLEncodedVariables method.
                * server/sprite_instance.cpp (loadVariables): delegate vars
                  url-encoding to the new specialized method.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.5661&r2=1.5662
http://cvs.savannah.gnu.org/viewcvs/gnash/server/as_object.cpp?cvsroot=gnash&r1=1.97&r2=1.98
http://cvs.savannah.gnu.org/viewcvs/gnash/server/as_object.h?cvsroot=gnash&r1=1.91&r2=1.92
http://cvs.savannah.gnu.org/viewcvs/gnash/server/sprite_instance.cpp?cvsroot=gnash&r1=1.476&r2=1.477

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.5661
retrieving revision 1.5662
diff -u -b -r1.5661 -r1.5662
--- ChangeLog   15 Feb 2008 10:05:25 -0000      1.5661
+++ ChangeLog   15 Feb 2008 10:12:53 -0000      1.5662
@@ -1,3 +1,9 @@
+2008-02-15 Sandro Santilli <address@hidden>
+
+       * server/as_object.{cpp,h}: add getURLEncodedVariables method.
+       * server/sprite_instance.cpp (loadVariables): delegate vars
+         url-encoding to the new specialized method.
+
 2008-02-15 Benjamin Wolsey <address@hidden>
 
        * server/swf/tag_loaders.cpp: (define_bits_lossless_2_loader) log

Index: server/as_object.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/as_object.cpp,v
retrieving revision 1.97
retrieving revision 1.98
diff -u -b -r1.97 -r1.98
--- server/as_object.cpp        4 Feb 2008 11:32:26 -0000       1.97
+++ server/as_object.cpp        15 Feb 2008 10:12:54 -0000      1.98
@@ -1015,4 +1015,30 @@
        return tmp.to_object().get();
 }
 
+void
+as_object::getURLEncodedVars(std::string& data)
+{
+    typedef std::map<std::string, std::string> PropMap;
+    PropMap props;
+    enumerateProperties(props);
+
+    std::string del;
+    data.clear();
+    
+    for (PropMap::const_iterator i=props.begin(), e=props.end(); i!=e; ++i)
+    {
+      std::string name = i->first;
+      std::string value = i->second;
+      if ( ! name.empty() && name[0] == '$' ) continue; // see bug #22006
+      URL::encode(value);
+      
+      data += del + name + "=" + value;
+      
+      del = "&";
+        
+    }
+    
+}
+
+
 } // end of gnash namespace

Index: server/as_object.h
===================================================================
RCS file: /sources/gnash/gnash/server/as_object.h,v
retrieving revision 1.91
retrieving revision 1.92
diff -u -b -r1.91 -r1.92
--- server/as_object.h  21 Jan 2008 20:55:49 -0000      1.91
+++ server/as_object.h  15 Feb 2008 10:12:55 -0000      1.92
@@ -726,6 +726,19 @@
        ///
        void enumerateProperties(std::map<std::string, std::string>& to);
 
+       /// Get url-encoded variables
+       //
+       /// This method will be used for loadVariables and loadMovie
+       /// calls, to encode variables for sending over a network.
+       /// Variables starting with a dollar sign will be skipped,
+       /// as non-enumerable ones.
+       ///
+       /// @param data
+       ///     Output parameter, will be set to the url-encoded
+       ///     variables string, w/out any leading delimiter.
+       ///
+       void getURLEncodedVars(std::string& data);
+
        /// Visit the properties of this object by key/as_value pairs
        //
        /// The method will invoke the given visitor method

Index: server/sprite_instance.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/sprite_instance.cpp,v
retrieving revision 1.476
retrieving revision 1.477
diff -u -b -r1.476 -r1.477
--- server/sprite_instance.cpp  14 Feb 2008 18:57:46 -0000      1.476
+++ server/sprite_instance.cpp  15 Feb 2008 10:12:55 -0000      1.477
@@ -4133,38 +4133,11 @@
   // will be done by LoadVariablesThread (down by getStream, that is)
   //if ( ! URLAccessManager::allow(url) ) return;
   
-  std::string postdata = "";
+  std::string postdata;
   
   if ( sendVarsMethod )    // 1=GET, 2=POST
   {
-    typedef std::map<std::string, std::string> PropMap;
-    PropMap props;
-    enumerateProperties(props);
-
-    std::string del = "";
-    std::string data = "";
-    
-    if ( (sendVarsMethod == 1) && (url.querystring() != "") )  // GET
-      del = "&";
-    
-    for (PropMap::const_iterator i=props.begin(), e=props.end(); i!=e; ++i)
-    {
-      std::string name = i->first;
-      std::string value = i->second;
-      if ( ! name.empty() && name[0] == '$' ) continue; // see bug #22006
-      url.encode(value);
-      
-      data += del + name + "=" + value;
-      
-      del = "&";
-        
-    }
-    
-    if ( sendVarsMethod == 1 )  // GET 
-      url.set_querystring(url.querystring() + data);
-    else if ( sendVarsMethod == 2 )  // POST
-      postdata = data;
-  
+       getURLEncodedVars(postdata);
   }
 
   try 
@@ -4177,6 +4150,13 @@
     else
     {
         // use GET method
+        if ( sendVarsMethod == 1 )
+       {
+               // Append variables
+               string qs = url.querystring();
+               if ( qs.empty() ) url.set_querystring(postdata);
+               else url.set_querystring(qs + std::string("&") + postdata);
+       }
        _loadVariableRequests.push_back(new LoadVariablesThread(url));
     }
     _loadVariableRequests.back()->process();




reply via email to

[Prev in Thread] Current Thread [Next in Thread]