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