<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>194837</bug_id>
          
          <creation_ts>2019-02-19 15:43:47 -0800</creation_ts>
          <short_desc>[bmalloc] DebugHeap::malloc does not have &quot;try&quot; version.</short_desc>
          <delta_ts>2019-02-21 02:14:51 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>mark.lam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1507889</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-02-19 15:43:47 -0800</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1507958</commentid>
    <comment_count>1</comment_count>
      <attachid>362468</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-02-19 18:21:55 -0800</bug_when>
    <thetext>Created attachment 362468
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508107</commentid>
    <comment_count>2</comment_count>
      <attachid>362468</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-02-20 10:05:09 -0800</bug_when>
    <thetext>Comment on attachment 362468
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508219</commentid>
    <comment_count>3</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-02-20 13:45:59 -0800</bug_when>
    <thetext>(In reply to Mark Lam from comment #2)
&gt; Comment on attachment 362468 [details]
&gt; Patch
&gt; 
&gt; r=me

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508242</commentid>
    <comment_count>4</comment_count>
      <attachid>362468</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-02-20 14:22:18 -0800</bug_when>
    <thetext>Comment on attachment 362468
Patch

Clearing flags on attachment: 362468

Committed r241837: &lt;https://trac.webkit.org/changeset/241837&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508243</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-02-20 14:22:19 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508247</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-02-20 14:23:29 -0800</bug_when>
    <thetext>&lt;rdar://problem/48251809&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508449</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2019-02-20 21:51:11 -0800</bug_when>
    <thetext>Why not put the crash on failure at the call sites? Seems strange to pass a boolean just to do a check that the caller could have done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508477</commentid>
    <comment_count>8</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-02-21 02:14:51 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #7)
&gt; Why not put the crash on failure at the call sites? Seems strange to pass a
&gt; boolean just to do a check that the caller could have done.

The patch adds missing tryAllocate feature into DebugHeap, and this style is aligned to the existing DebugHeap::memalign, bmalloc allocators, and JSC GC Heap Allocators (JavaScriptCore/heap/AllocationFailureMode.h).
I think our (current) typical style is, creating low-level allocator with this style, and constructing tryAllocate / allocate APIs on these low-level allocators, and expose them to clients (e.g. JSArray::tryCreate).
I&apos;m not sure the original intent of this API design. But one pros is that we can gather CRASH into one place instead of putting it at the caller sites, while we still keep good &quot;try&quot; or &quot;not-try&quot; information in stacktrace&apos;s function name (`tryAllocate` or `allocate`).
But I don&apos;t have strong opinion here as long as the style is consistent :)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>362468</attachid>
            <date>2019-02-19 18:21:55 -0800</date>
            <delta_ts>2019-02-20 14:22:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194837-20190219182154.patch</filename>
            <type>text/plain</type>
            <size>4705</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQxNzg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9D
aGFuZ2VMb2cgYi9Tb3VyY2UvYm1hbGxvYy9DaGFuZ2VMb2cKaW5kZXggZmY5YTg4YTY5ZWM1Y2Rj
YmIwNTE0MjViYjQwODE0MTRlNTI1ZjY5OS4uN2NlN2ZlYTRlNjhkMTcyNjlmNGYwZTc0MDQwOGQ5
MTA4ZDE1ZDhkZSAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9ibWFsbG9jL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE5LTAyLTE5ICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgW2JtYWxsb2NdIERlYnVn
SGVhcDo6bWFsbG9jIGRvZXMgbm90IGhhdmUgInRyeSIgdmVyc2lvbi4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NDgzNworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNpbmNlIERlYnVnSGVhcDo6bWFsbG9j
IGRvZXMgbm90IGhhdmUgInRyeSIgdmVyc2lvbiwgb3VyIHRyeUFsbG9jYXRlIGltcGxlbWVudGF0
aW9uIGRvZXMgbm90IHdvcmsgd2VsbCB3aXRoIERlYnVnSGVhcC4KKyAgICAgICAgVGhpcyBwYXRj
aCBhZGRzIGNyYXNoT25GYWlsdXJlIGZsYWcgdG8gRGVidWdIZWFwOjptYWxsb2MuCisKKyAgICAg
ICAgKiBibWFsbG9jL0NhY2hlLmNwcDoKKyAgICAgICAgKGJtYWxsb2M6OkNhY2hlOjp0cnlBbGxv
Y2F0ZVNsb3dDYXNlTnVsbENhY2hlKToKKyAgICAgICAgKGJtYWxsb2M6OkNhY2hlOjphbGxvY2F0
ZVNsb3dDYXNlTnVsbENhY2hlKToKKyAgICAgICAgKiBibWFsbG9jL0RlYnVnSGVhcC5jcHA6Cisg
ICAgICAgIChibWFsbG9jOjpEZWJ1Z0hlYXA6Om1hbGxvYyk6CisgICAgICAgICogYm1hbGxvYy9E
ZWJ1Z0hlYXAuaDoKKyAgICAgICAgKiBibWFsbG9jL0lzb1RMUy5jcHA6CisgICAgICAgIChibWFs
bG9jOjpJc29UTFM6OmRlYnVnTWFsbG9jKToKKwogMjAxOS0wMi0xOSAgWXVzdWtlIFN1enVraSAg
PHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtibWFsbG9jXSBibWFsbG9jOjpDYWNoZSBz
aG91bGQgbm90IGJlIGluc3RhbnRpYXRlZCBpZiB3ZSBhcmUgdXNpbmcgc3lzdGVtIG1hbGxvYwpk
aWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9DYWNoZS5jcHAgYi9Tb3VyY2UvYm1h
bGxvYy9ibWFsbG9jL0NhY2hlLmNwcAppbmRleCAyOWFkMTMwOTg2NmYxMmQ4MDlmNmYxMjFkOWY2
NTExZWQ3MzUzNjJhLi42NDI5MmExNDViY2JiOGJkMzQ2ODFlMzlhMDVjOTllODhlMmE2NjQxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0NhY2hlLmNwcAorKysgYi9Tb3VyY2Uv
Ym1hbGxvYy9ibWFsbG9jL0NhY2hlLmNwcApAQCAtNjYsMTcgKzY2LDE5IEBAIENhY2hlOjpDYWNo
ZShIZWFwS2luZCBoZWFwS2luZCkKIAogQk5PX0lOTElORSB2b2lkKiBDYWNoZTo6dHJ5QWxsb2Nh
dGVTbG93Q2FzZU51bGxDYWNoZShIZWFwS2luZCBoZWFwS2luZCwgc2l6ZV90IHNpemUpCiB7Ci0g
ICAgLy8gRklYTUU6IERlYnVnSGVhcCBkb2VzIG5vdCBoYXZlIHRyeUFsbG9jYXRlIGZlYXR1cmUu
Ci0gICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NDgzNwot
ICAgIGlmIChhdXRvKiBoZWFwID0gZGVidWdIZWFwKCkpCi0gICAgICAgIHJldHVybiBoZWFwLT5t
YWxsb2Moc2l6ZSk7CisgICAgaWYgKGF1dG8qIGhlYXAgPSBkZWJ1Z0hlYXAoKSkgeworICAgICAg
ICBjb25zdGV4cHIgYm9vbCBjcmFzaE9uRmFpbHVyZSA9IGZhbHNlOworICAgICAgICByZXR1cm4g
aGVhcC0+bWFsbG9jKHNpemUsIGNyYXNoT25GYWlsdXJlKTsKKyAgICB9CiAgICAgcmV0dXJuIFBl
clRocmVhZDxQZXJIZWFwS2luZDxDYWNoZT4+OjpnZXRTbG93Q2FzZSgpLT5hdChtYXBUb0FjdGl2
ZUhlYXBLaW5kKGhlYXBLaW5kKSkuYWxsb2NhdG9yKCkudHJ5QWxsb2NhdGUoc2l6ZSk7CiB9CiAK
IEJOT19JTkxJTkUgdm9pZCogQ2FjaGU6OmFsbG9jYXRlU2xvd0Nhc2VOdWxsQ2FjaGUoSGVhcEtp
bmQgaGVhcEtpbmQsIHNpemVfdCBzaXplKQogewotICAgIGlmIChhdXRvKiBoZWFwID0gZGVidWdI
ZWFwKCkpCi0gICAgICAgIHJldHVybiBoZWFwLT5tYWxsb2Moc2l6ZSk7CisgICAgaWYgKGF1dG8q
IGhlYXAgPSBkZWJ1Z0hlYXAoKSkgeworICAgICAgICBjb25zdGV4cHIgYm9vbCBjcmFzaE9uRmFp
bHVyZSA9IHRydWU7CisgICAgICAgIHJldHVybiBoZWFwLT5tYWxsb2Moc2l6ZSwgY3Jhc2hPbkZh
aWx1cmUpOworICAgIH0KICAgICByZXR1cm4gUGVyVGhyZWFkPFBlckhlYXBLaW5kPENhY2hlPj46
OmdldFNsb3dDYXNlKCktPmF0KG1hcFRvQWN0aXZlSGVhcEtpbmQoaGVhcEtpbmQpKS5hbGxvY2F0
b3IoKS5hbGxvY2F0ZShzaXplKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvYm1h
bGxvYy9EZWJ1Z0hlYXAuY3BwIGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9EZWJ1Z0hlYXAuY3Bw
CmluZGV4IGYyMWY1YTUyZjVjMmE2NWVlYTBlZmJlOGM2MTkxNzUxYjU5MDQ5OTAuLjFmZjE3ODBi
MWFlMjVkMTNjMzU3NmViMTBjM2Y5MTY4N2EyNzAxMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFs
bG9jL2JtYWxsb2MvRGVidWdIZWFwLmNwcAorKysgYi9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0Rl
YnVnSGVhcC5jcHAKQEAgLTQzLDEwICs0MywxMCBAQCBEZWJ1Z0hlYXA6OkRlYnVnSGVhcChzdGQ6
OmxvY2tfZ3VhcmQ8TXV0ZXg+JikKICAgICBtYWxsb2Nfc2V0X3pvbmVfbmFtZShtX3pvbmUsICJX
ZWJLaXQgVXNpbmcgU3lzdGVtIE1hbGxvYyIpOwogfQogCi12b2lkKiBEZWJ1Z0hlYXA6Om1hbGxv
YyhzaXplX3Qgc2l6ZSkKK3ZvaWQqIERlYnVnSGVhcDo6bWFsbG9jKHNpemVfdCBzaXplLCBib29s
IGNyYXNoT25GYWlsdXJlKQogewogICAgIHZvaWQqIHJlc3VsdCA9IG1hbGxvY196b25lX21hbGxv
YyhtX3pvbmUsIHNpemUpOwotICAgIGlmICghcmVzdWx0KQorICAgIGlmICghcmVzdWx0ICYmIGNy
YXNoT25GYWlsdXJlKQogICAgICAgICBCQ1JBU0goKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQpA
QCAtNzksMTAgKzc5LDEwIEBAIERlYnVnSGVhcDo6RGVidWdIZWFwKHN0ZDo6bG9ja19ndWFyZDxN
dXRleD4mKQogewogfQogCi12b2lkKiBEZWJ1Z0hlYXA6Om1hbGxvYyhzaXplX3Qgc2l6ZSkKK3Zv
aWQqIERlYnVnSGVhcDo6bWFsbG9jKHNpemVfdCBzaXplLCBib29sIGNyYXNoT25GYWlsdXJlKQog
ewogICAgIHZvaWQqIHJlc3VsdCA9IDo6bWFsbG9jKHNpemUpOwotICAgIGlmICghcmVzdWx0KQor
ICAgIGlmICghcmVzdWx0ICYmIGNyYXNoT25GYWlsdXJlKQogICAgICAgICBCQ1JBU0goKTsKICAg
ICByZXR1cm4gcmVzdWx0OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9E
ZWJ1Z0hlYXAuaCBiL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvRGVidWdIZWFwLmgKaW5kZXggMjE5
ZjgzNzRlNTc5ZjE5YzQ1ZDg2NDVmMGY0ZTg5MGRkZDgyYjk4ZC4uNTE4YTY0NWQxMjRiYzdkM2Iz
MzA1ZjE2ZGQ5M2JhZGRkNzRlNmVkYiAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvYm1hbGxv
Yy9EZWJ1Z0hlYXAuaAorKysgYi9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0RlYnVnSGVhcC5oCkBA
IC0zOSw3ICszOSw3IEBAIGNsYXNzIERlYnVnSGVhcCB7CiBwdWJsaWM6CiAgICAgRGVidWdIZWFw
KHN0ZDo6bG9ja19ndWFyZDxNdXRleD4mKTsKICAgICAKLSAgICB2b2lkKiBtYWxsb2Moc2l6ZV90
KTsKKyAgICB2b2lkKiBtYWxsb2Moc2l6ZV90LCBib29sIGNyYXNoT25GYWlsdXJlKTsKICAgICB2
b2lkKiBtZW1hbGlnbihzaXplX3QgYWxpZ25tZW50LCBzaXplX3QsIGJvb2wgY3Jhc2hPbkZhaWx1
cmUpOwogICAgIHZvaWQqIHJlYWxsb2Modm9pZCosIHNpemVfdCwgYm9vbCBjcmFzaE9uRmFpbHVy
ZSk7CiAgICAgdm9pZCBmcmVlKHZvaWQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2Jt
YWxsb2MvSXNvVExTLmNwcCBiL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvSXNvVExTLmNwcAppbmRl
eCBjOTZmMjIyNzc3NjdlNTdiZDBkZmYyZmZkODU0ZjY2ZjlkNmZlMjY1Li41MjA1NjVmODRhZDZh
Yzg5OTQ3NDM2NzVhMWZjOWYxNGZkMjVjNzBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9i
bWFsbG9jL0lzb1RMUy5jcHAKKysrIGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9Jc29UTFMuY3Bw
CkBAIC0xODIsOCArMTgyLDEwIEBAIGJvb2wgSXNvVExTOjppc1VzaW5nRGVidWdIZWFwKCkKIGF1
dG8gSXNvVExTOjpkZWJ1Z01hbGxvYyhzaXplX3Qgc2l6ZSkgLT4gRGVidWdNYWxsb2NSZXN1bHQK
IHsKICAgICBEZWJ1Z01hbGxvY1Jlc3VsdCByZXN1bHQ7Ci0gICAgaWYgKChyZXN1bHQudXNpbmdE
ZWJ1Z0hlYXAgPSBpc1VzaW5nRGVidWdIZWFwKCkpKQotICAgICAgICByZXN1bHQucHRyID0gUGVy
UHJvY2VzczxEZWJ1Z0hlYXA+OjpnZXQoKS0+bWFsbG9jKHNpemUpOworICAgIGlmICgocmVzdWx0
LnVzaW5nRGVidWdIZWFwID0gaXNVc2luZ0RlYnVnSGVhcCgpKSkgeworICAgICAgICBjb25zdGV4
cHIgYm9vbCBjcmFzaE9uRmFpbHVyZSA9IHRydWU7CisgICAgICAgIHJlc3VsdC5wdHIgPSBQZXJQ
cm9jZXNzPERlYnVnSGVhcD46OmdldCgpLT5tYWxsb2Moc2l6ZSwgY3Jhc2hPbkZhaWx1cmUpOwor
ICAgIH0KICAgICByZXR1cm4gcmVzdWx0OwogfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>