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