[webkit-dev] strdup in WebKit

2010-01-20 Thread KwangYul Seo
Hi,

WebKit does not use malloc/free directly in favor of fastMalloc/fastFree.
The only exception to this rule is strdup() which returns a memory that must
be freed by free. Why don't we add fastStrDup which allocates a memory with
fastMalloc? The memory returned by fastStrDup can be freed by fastFree.

The following source files in WebCore contains strdup calls.

dom/XMLTokenizerLibxml2.cpp
plugins/PluginStream.cpp
platform/network/ResourceHandleInternal.h
platform/network/curl/ResourceHandleManager.cpp
platform/network/curl/ResourceHandleCurl.cpp
xml/XSLTProcessorLibxslt.cpp
bindings/v8/npruntime.cpp
bindings/v8/V8NPUtils.cpp
bridge/IdentifierRep.h
bridge/jni/jni_runtime.cpp
bridge/jni/jsc/JavaClassJSC.cpp
bridge/npruntime.cpp
bridge/testbindings.cpp

strdup/free pairs can be safely replaced with fastStrDup/fastFree in most
cases.  However, bridge and bindings can be an exception because some APIs
must return malloc() allocated memory that can be freed with free().

I am asking this because strdup (POSIX function) is not available in RVCT.
If this is not possible for some reasons, adding strdup to StringExtras.h
for RVCT can be a good solution too. How does the Symbian QT port solve this
problem?

Regards,
Kwang Yul Seo
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] strdup in WebKit

2010-01-20 Thread Maciej Stachowiak

On Jan 20, 2010, at 2:07 AM, KwangYul Seo wrote:

 Hi,
 
 WebKit does not use malloc/free directly in favor of fastMalloc/fastFree. The 
 only exception to this rule is strdup() which returns a memory that must be 
 freed by free. Why don't we add fastStrDup which allocates a memory with 
 fastMalloc? The memory returned by fastStrDup can be freed by fastFree.

Sounds like a reasonable plan in general. It's possible that in some of the 
cases you cie below, strdup is being used to pass malloc-allocated memory to a 
library that expects a string allocated with system malloc, which it will 
proceed to free itself. I'm not sure if it's really true in any of these cases, 
but it's something to check.

I suggest filing a bug and submitting a patch for this.

Cheers,
Maciej


 
 The following source files in WebCore contains strdup calls.
 
 dom/XMLTokenizerLibxml2.cpp
 plugins/PluginStream.cpp
 platform/network/ResourceHandleInternal.h
 platform/network/curl/ResourceHandleManager.cpp
 platform/network/curl/ResourceHandleCurl.cpp
 xml/XSLTProcessorLibxslt.cpp
 bindings/v8/npruntime.cpp
 bindings/v8/V8NPUtils.cpp
 bridge/IdentifierRep.h
 bridge/jni/jni_runtime.cpp
 bridge/jni/jsc/JavaClassJSC.cpp
 bridge/npruntime.cpp
 bridge/testbindings.cpp
 
 strdup/free pairs can be safely replaced with fastStrDup/fastFree in most 
 cases.  However, bridge and bindings can be an exception because some APIs 
 must return malloc() allocated memory that can be freed with free().
 
 I am asking this because strdup (POSIX function) is not available in RVCT. If 
 this is not possible for some reasons, adding strdup to StringExtras.h for 
 RVCT can be a good solution too. How does the Symbian QT port solve this 
 problem?
 
 Regards,
 Kwang Yul Seo
 ___
 webkit-dev mailing list
 webkit-dev@lists.webkit.org
 http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] strdup in WebKit

2010-01-20 Thread Alexey Proskuryakov

20.01.2010, в 02:07, KwangYul Seo написал(а):

 strdup/free pairs can be safely replaced with fastStrDup/fastFree in most 
 cases.


Libxml2-related code in particular could use xmlStrdup for consistency.

- WBR, Alexey Proskuryakov

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev