diff options
| author | Richard Brooksby | 2013-05-09 15:15:40 +0100 |
|---|---|---|
| committer | Richard Brooksby | 2013-05-09 15:15:40 +0100 |
| commit | f4416c7efc53e2092dbacd6a2e1d67c4ec3b0a68 (patch) | |
| tree | 2a0f20245f4fc6c8fc1fbcb3e16f3bf87caab56d /mps/code | |
| parent | 5acbbfa97e8911961ac3025f6e4f90deb22cf321 (diff) | |
| download | emacs-f4416c7efc53e2092dbacd6a2e1d67c4ec3b0a68.tar.gz emacs-f4416c7efc53e2092dbacd6a2e1d67c4ec3b0a68.zip | |
Changing required keyword arguments to cause an assertion rather than return a status code, and removing repetition in how this is expressed.
Copied from Perforce
Change: 181674
ServerID: perforce.ravenbrook.com
Diffstat (limited to 'mps/code')
| -rw-r--r-- | mps/code/arenacl.c | 20 | ||||
| -rw-r--r-- | mps/code/arenavm.c | 8 | ||||
| -rw-r--r-- | mps/code/arg.c | 9 | ||||
| -rw-r--r-- | mps/code/arg.h | 2 | ||||
| -rw-r--r-- | mps/code/dbgpool.c | 10 | ||||
| -rw-r--r-- | mps/code/poolamc.c | 4 | ||||
| -rw-r--r-- | mps/code/poolams.c | 27 | ||||
| -rw-r--r-- | mps/code/poolawl.c | 18 | ||||
| -rw-r--r-- | mps/code/poollo.c | 10 | ||||
| -rw-r--r-- | mps/code/poolmfs.c | 16 | ||||
| -rw-r--r-- | mps/code/poolmv2.c | 37 | ||||
| -rw-r--r-- | mps/code/poolsnc.c | 12 | ||||
| -rw-r--r-- | mps/code/segsmss.c | 12 |
13 files changed, 57 insertions, 128 deletions
diff --git a/mps/code/arenacl.c b/mps/code/arenacl.c index db10accd6fe..d0e65a53ac1 100644 --- a/mps/code/arenacl.c +++ b/mps/code/arenacl.c | |||
| @@ -216,19 +216,11 @@ static Res ClientArenaInit(Arena *arenaReturn, ArenaClass class, ArgList args) | |||
| 216 | AVER(arenaReturn != NULL); | 216 | AVER(arenaReturn != NULL); |
| 217 | AVER((ArenaClass)mps_arena_class_cl() == class); | 217 | AVER((ArenaClass)mps_arena_class_cl() == class); |
| 218 | AVER(ArgListCheck(args)); | 218 | AVER(ArgListCheck(args)); |
| 219 | 219 | ||
| 220 | if (ArgPick(&arg, args, MPS_KEY_ARENA_SIZE)) { | 220 | ArgRequire(&arg, args, MPS_KEY_ARENA_SIZE); |
| 221 | size = arg.val.size; | 221 | size = arg.val.size; |
| 222 | if (ArgPick(&arg, args, MPS_KEY_ARENA_CL_ADDR)) | 222 | ArgRequire(&arg, args, MPS_KEY_ARENA_CL_ADDR); |
| 223 | base = arg.val.addr; | 223 | base = arg.val.addr; |
| 224 | else { | ||
| 225 | res = ResPARAM; | ||
| 226 | goto failParam; | ||
| 227 | } | ||
| 228 | } else { | ||
| 229 | res = ResPARAM; | ||
| 230 | goto failParam; | ||
| 231 | } | ||
| 232 | 224 | ||
| 233 | AVER(base != (Addr)0); | 225 | AVER(base != (Addr)0); |
| 234 | 226 | ||
| @@ -272,7 +264,7 @@ static Res ClientArenaInit(Arena *arenaReturn, ArenaClass class, ArgList args) | |||
| 272 | 264 | ||
| 273 | failChunkCreate: | 265 | failChunkCreate: |
| 274 | ArenaFinish(arena); | 266 | ArenaFinish(arena); |
| 275 | failParam: | 267 | AVER(res != ResOK); |
| 276 | return res; | 268 | return res; |
| 277 | } | 269 | } |
| 278 | 270 | ||
diff --git a/mps/code/arenavm.c b/mps/code/arenavm.c index 0bb83500f25..9904ada470a 100644 --- a/mps/code/arenavm.c +++ b/mps/code/arenavm.c | |||
| @@ -478,12 +478,8 @@ static Res VMArenaInit(Arena *arenaReturn, ArenaClass class, ArgList args) | |||
| 478 | AVER(class == VMArenaClassGet() || class == VMNZArenaClassGet()); | 478 | AVER(class == VMArenaClassGet() || class == VMNZArenaClassGet()); |
| 479 | AVER(ArgListCheck(args)); | 479 | AVER(ArgListCheck(args)); |
| 480 | 480 | ||
| 481 | if (ArgPick(&arg, args, MPS_KEY_ARENA_SIZE)) | 481 | ArgRequire(&arg, args, MPS_KEY_ARENA_SIZE); |
| 482 | userSize = arg.val.size; | 482 | userSize = arg.val.size; |
| 483 | else { | ||
| 484 | res = ResPARAM; | ||
| 485 | goto failVMCreate; | ||
| 486 | } | ||
| 487 | 483 | ||
| 488 | AVER(userSize > 0); | 484 | AVER(userSize > 0); |
| 489 | 485 | ||
diff --git a/mps/code/arg.c b/mps/code/arg.c index 4d2447e5c00..14170c3ed35 100644 --- a/mps/code/arg.c +++ b/mps/code/arg.c | |||
| @@ -142,6 +142,15 @@ found: | |||
| 142 | } | 142 | } |
| 143 | 143 | ||
| 144 | 144 | ||
| 145 | /* ArgRequire -- take a required argument out of the argument list by keyword */ | ||
| 146 | |||
| 147 | void ArgRequire(ArgStruct *argOut, ArgList args, Key key) { | ||
| 148 | if (ArgPick(argOut, args, key)) | ||
| 149 | return; | ||
| 150 | NOTREACHED; | ||
| 151 | } | ||
| 152 | |||
| 153 | |||
| 145 | /* C. COPYRIGHT AND LICENSE | 154 | /* C. COPYRIGHT AND LICENSE |
| 146 | * | 155 | * |
| 147 | * Copyright (C) 2001-2013 Ravenbrook Limited <http://www.ravenbrook.com/>. | 156 | * Copyright (C) 2001-2013 Ravenbrook Limited <http://www.ravenbrook.com/>. |
diff --git a/mps/code/arg.h b/mps/code/arg.h index 2647937c201..dc1e8a2a991 100644 --- a/mps/code/arg.h +++ b/mps/code/arg.h | |||
| @@ -37,7 +37,7 @@ extern Bool ArgCheck(Arg arg); | |||
| 37 | extern Bool ArgListCheck(ArgList args); | 37 | extern Bool ArgListCheck(ArgList args); |
| 38 | 38 | ||
| 39 | extern Bool ArgPick(ArgStruct *argOut, ArgList args, Key key); | 39 | extern Bool ArgPick(ArgStruct *argOut, ArgList args, Key key); |
| 40 | extern void ArgRequired(ArgStruct *argOut, ArgList args, Key key); | 40 | extern void ArgRequire(ArgStruct *argOut, ArgList args, Key key); |
| 41 | 41 | ||
| 42 | extern Bool ArgCheckCant(Arg arg); | 42 | extern Bool ArgCheckCant(Arg arg); |
| 43 | extern Bool ArgCheckFormat(Arg arg); | 43 | extern Bool ArgCheckFormat(Arg arg); |
diff --git a/mps/code/dbgpool.c b/mps/code/dbgpool.c index d70e855adc3..88dec0532b6 100644 --- a/mps/code/dbgpool.c +++ b/mps/code/dbgpool.c | |||
| @@ -132,12 +132,8 @@ static Res DebugPoolInit(Pool pool, ArgList args) | |||
| 132 | 132 | ||
| 133 | /* TODO: Split this structure into separate keyword arguments, | 133 | /* TODO: Split this structure into separate keyword arguments, |
| 134 | now that we can support them. */ | 134 | now that we can support them. */ |
| 135 | if (ArgPick(&arg, args, MPS_KEY_POOL_DEBUG_OPTIONS)) | 135 | ArgRequire(&arg, args, MPS_KEY_POOL_DEBUG_OPTIONS); |
| 136 | options = (PoolDebugOptions)arg.val.pool_debug_options; | 136 | options = (PoolDebugOptions)arg.val.pool_debug_options; |
| 137 | else { | ||
| 138 | res = ResPARAM; | ||
| 139 | goto failParam; | ||
| 140 | } | ||
| 141 | 137 | ||
| 142 | AVERT(PoolDebugOptions, options); | 138 | AVERT(PoolDebugOptions, options); |
| 143 | 139 | ||
| @@ -208,7 +204,7 @@ static Res DebugPoolInit(Pool pool, ArgList args) | |||
| 208 | tagFail: | 204 | tagFail: |
| 209 | alignFail: | 205 | alignFail: |
| 210 | SuperclassOfPool(pool)->finish(pool); | 206 | SuperclassOfPool(pool)->finish(pool); |
| 211 | failParam: | 207 | AVER(res != ResOK); |
| 212 | return res; | 208 | return res; |
| 213 | } | 209 | } |
| 214 | 210 | ||
diff --git a/mps/code/poolamc.c b/mps/code/poolamc.c index 8235b66c05f..b6b4e5c0289 100644 --- a/mps/code/poolamc.c +++ b/mps/code/poolamc.c | |||
| @@ -973,9 +973,9 @@ static Res amcInitComm(Pool pool, RankSet rankSet, ArgList args) | |||
| 973 | amc = Pool2AMC(pool); | 973 | amc = Pool2AMC(pool); |
| 974 | arena = PoolArena(pool); | 974 | arena = PoolArena(pool); |
| 975 | 975 | ||
| 976 | ArgRequired(&arg, args, MPS_KEY_FORMAT); | 976 | ArgRequire(&arg, args, MPS_KEY_FORMAT); |
| 977 | pool->format = arg.val.format; | 977 | pool->format = arg.val.format; |
| 978 | ArgRequired(&arg, args, MPS_KEY_CHAIN); | 978 | ArgRequire(&arg, args, MPS_KEY_CHAIN); |
| 979 | amc->chain = arg.val.chain; | 979 | amc->chain = arg.val.chain; |
| 980 | 980 | ||
| 981 | AVERT(Format, pool->format); | 981 | AVERT(Format, pool->format); |
diff --git a/mps/code/poolams.c b/mps/code/poolams.c index 6d4b8615abf..e5e4b249bcb 100644 --- a/mps/code/poolams.c +++ b/mps/code/poolams.c | |||
| @@ -769,24 +769,12 @@ static Res AMSInit(Pool pool, ArgList args) | |||
| 769 | AVERT(Pool, pool); | 769 | AVERT(Pool, pool); |
| 770 | AVER(ArgListCheck(args)); | 770 | AVER(ArgListCheck(args)); |
| 771 | 771 | ||
| 772 | if (ArgPick(&arg, args, MPS_KEY_CHAIN)) | 772 | ArgRequire(&arg, args, MPS_KEY_CHAIN); |
| 773 | chain = arg.val.chain; | 773 | chain = arg.val.chain; |
| 774 | else { | 774 | ArgRequire(&arg, args, MPS_KEY_FORMAT); |
| 775 | res = ResPARAM; | 775 | format = arg.val.format; |
| 776 | goto failParam; | 776 | ArgRequire(&arg, args, MPS_KEY_AMS_SUPPORT_AMBIGUOUS); |
| 777 | } | 777 | supportAmbiguous = arg.val.b; |
| 778 | if (ArgPick(&arg, args, MPS_KEY_FORMAT)) | ||
| 779 | format = arg.val.format; | ||
| 780 | else { | ||
| 781 | res = ResPARAM; | ||
| 782 | goto failParam; | ||
| 783 | } | ||
| 784 | if (ArgPick(&arg, args, MPS_KEY_AMS_SUPPORT_AMBIGUOUS)) | ||
| 785 | supportAmbiguous = arg.val.b; | ||
| 786 | else { | ||
| 787 | res = ResPARAM; | ||
| 788 | goto failParam; | ||
| 789 | } | ||
| 790 | 778 | ||
| 791 | /* .ambiguous.noshare: If the pool is required to support ambiguous */ | 779 | /* .ambiguous.noshare: If the pool is required to support ambiguous */ |
| 792 | /* references, the alloc and white tables cannot be shared. */ | 780 | /* references, the alloc and white tables cannot be shared. */ |
| @@ -795,9 +783,6 @@ static Res AMSInit(Pool pool, ArgList args) | |||
| 795 | EVENT3(PoolInitAMS, pool, PoolArena(pool), format); | 783 | EVENT3(PoolInitAMS, pool, PoolArena(pool), format); |
| 796 | } | 784 | } |
| 797 | return res; | 785 | return res; |
| 798 | |||
| 799 | failParam: | ||
| 800 | return res; | ||
| 801 | } | 786 | } |
| 802 | 787 | ||
| 803 | 788 | ||
diff --git a/mps/code/poolawl.c b/mps/code/poolawl.c index 95534d66958..96f0d2bef03 100644 --- a/mps/code/poolawl.c +++ b/mps/code/poolawl.c | |||
| @@ -541,18 +541,10 @@ static Res AWLInit(Pool pool, ArgList args) | |||
| 541 | 541 | ||
| 542 | awl = Pool2AWL(pool); | 542 | awl = Pool2AWL(pool); |
| 543 | 543 | ||
| 544 | if (ArgPick(&arg, args, MPS_KEY_FORMAT)) | 544 | ArgRequire(&arg, args, MPS_KEY_FORMAT); |
| 545 | format = arg.val.format; | 545 | format = arg.val.format; |
| 546 | else { | 546 | ArgRequire(&arg, args, MPS_KEY_AWL_FIND_DEPENDENT); |
| 547 | res = ResPARAM; | 547 | findDependent = (FindDependentMethod)arg.val.addr_method; |
| 548 | goto failParam; | ||
| 549 | } | ||
| 550 | if (ArgPick(&arg, args, MPS_KEY_AWL_FIND_DEPENDENT)) | ||
| 551 | findDependent = (FindDependentMethod)arg.val.addr_method; | ||
| 552 | else { | ||
| 553 | res = ResPARAM; | ||
| 554 | goto failParam; | ||
| 555 | } | ||
| 556 | 548 | ||
| 557 | AVERT(Format, format); | 549 | AVERT(Format, format); |
| 558 | pool->format = format; | 550 | pool->format = format; |
| @@ -584,7 +576,7 @@ static Res AWLInit(Pool pool, ArgList args) | |||
| 584 | 576 | ||
| 585 | failGenInit: | 577 | failGenInit: |
| 586 | ChainDestroy(chain); | 578 | ChainDestroy(chain); |
| 587 | failParam: | 579 | AVER(res != ResOK); |
| 588 | return res; | 580 | return res; |
| 589 | } | 581 | } |
| 590 | 582 | ||
diff --git a/mps/code/poollo.c b/mps/code/poollo.c index 541f0901781..8943f37c8ba 100644 --- a/mps/code/poollo.c +++ b/mps/code/poollo.c | |||
| @@ -493,12 +493,8 @@ static Res LOInit(Pool pool, ArgList args) | |||
| 493 | 493 | ||
| 494 | arena = PoolArena(pool); | 494 | arena = PoolArena(pool); |
| 495 | 495 | ||
| 496 | if (ArgPick(&arg, args, MPS_KEY_FORMAT)) | 496 | ArgRequire(&arg, args, MPS_KEY_FORMAT); |
| 497 | format = arg.val.format; | 497 | format = arg.val.format; |
| 498 | else { | ||
| 499 | res = ResPARAM; | ||
| 500 | goto failParam; | ||
| 501 | } | ||
| 502 | 498 | ||
| 503 | AVERT(Format, format); | 499 | AVERT(Format, format); |
| 504 | 500 | ||
| @@ -525,7 +521,7 @@ static Res LOInit(Pool pool, ArgList args) | |||
| 525 | 521 | ||
| 526 | failGenInit: | 522 | failGenInit: |
| 527 | ChainDestroy(lo->chain); | 523 | ChainDestroy(lo->chain); |
| 528 | failParam: | 524 | AVER(res != ResOK); |
| 529 | return res; | 525 | return res; |
| 530 | } | 526 | } |
| 531 | 527 | ||
diff --git a/mps/code/poolmfs.c b/mps/code/poolmfs.c index 4a33ed050a1..538be571934 100644 --- a/mps/code/poolmfs.c +++ b/mps/code/poolmfs.c | |||
| @@ -93,8 +93,8 @@ ARG_DEFINE_KEY(mfs_unit_size, Size); | |||
| 93 | 93 | ||
| 94 | static Res MFSInit(Pool pool, ArgList args) | 94 | static Res MFSInit(Pool pool, ArgList args) |
| 95 | { | 95 | { |
| 96 | Res res; | 96 | Size extendBy = MFS_EXTEND_BY_DEFAULT; |
| 97 | Size extendBy, unitSize; | 97 | Size unitSize; |
| 98 | MFS mfs; | 98 | MFS mfs; |
| 99 | Arena arena; | 99 | Arena arena; |
| 100 | ArgStruct arg; | 100 | ArgStruct arg; |
| @@ -102,16 +102,11 @@ static Res MFSInit(Pool pool, ArgList args) | |||
| 102 | AVER(pool != NULL); | 102 | AVER(pool != NULL); |
| 103 | AVER(ArgListCheck(args)); | 103 | AVER(ArgListCheck(args)); |
| 104 | 104 | ||
| 105 | if (ArgPick(&arg, args, MPS_KEY_MFS_UNIT_SIZE)) | 105 | ArgRequire(&arg, args, MPS_KEY_MFS_UNIT_SIZE); |
| 106 | unitSize = arg.val.size; | 106 | unitSize = arg.val.size; |
| 107 | else { | ||
| 108 | res = ResPARAM; | ||
| 109 | goto failParam; | ||
| 110 | } | ||
| 111 | if (ArgPick(&arg, args, MPS_KEY_EXTEND_BY)) | 107 | if (ArgPick(&arg, args, MPS_KEY_EXTEND_BY)) |
| 112 | extendBy = arg.val.size; | 108 | extendBy = arg.val.size; |
| 113 | else { | 109 | else { |
| 114 | extendBy = MFS_EXTEND_BY_DEFAULT; | ||
| 115 | if (extendBy < unitSize) | 110 | if (extendBy < unitSize) |
| 116 | extendBy = unitSize; | 111 | extendBy = unitSize; |
| 117 | } | 112 | } |
| @@ -137,9 +132,6 @@ static Res MFSInit(Pool pool, ArgList args) | |||
| 137 | AVERT(MFS, mfs); | 132 | AVERT(MFS, mfs); |
| 138 | EVENT4(PoolInitMFS, pool, arena, extendBy, unitSize); | 133 | EVENT4(PoolInitMFS, pool, arena, extendBy, unitSize); |
| 139 | return ResOK; | 134 | return ResOK; |
| 140 | |||
| 141 | failParam: | ||
| 142 | return res; | ||
| 143 | } | 135 | } |
| 144 | 136 | ||
| 145 | 137 | ||
diff --git a/mps/code/poolmv2.c b/mps/code/poolmv2.c index 203bf5a8e36..076d39563b4 100644 --- a/mps/code/poolmv2.c +++ b/mps/code/poolmv2.c | |||
| @@ -242,36 +242,23 @@ static Res MVTInit(Pool pool, ArgList args) | |||
| 242 | arena = PoolArena(pool); | 242 | arena = PoolArena(pool); |
| 243 | AVERT(Arena, arena); | 243 | AVERT(Arena, arena); |
| 244 | 244 | ||
| 245 | 245 | if (ArgPick(&arg, args, MPS_KEY_MIN_SIZE)) | |
| 246 | /* FIXME: Inconsistent reporting of bad arguments. Elsewhere we assert or return ResPARAM. */ | ||
| 247 | /* --- Should there be a ResBADARG ? */ | ||
| 248 | if (ArgPick(&arg, args, MPS_KEY_MIN_SIZE)) { | ||
| 249 | minSize = arg.val.size; | 246 | minSize = arg.val.size; |
| 250 | unless (minSize > 0) | 247 | if (ArgPick(&arg, args, MPS_KEY_MEAN_SIZE)) |
| 251 | return ResLIMIT; | ||
| 252 | } | ||
| 253 | if (ArgPick(&arg, args, MPS_KEY_MEAN_SIZE)) { | ||
| 254 | meanSize = arg.val.size; | 248 | meanSize = arg.val.size; |
| 255 | unless (meanSize >= minSize) | 249 | if (ArgPick(&arg, args, MPS_KEY_MAX_SIZE)) |
| 256 | return ResLIMIT; | ||
| 257 | } | ||
| 258 | if (ArgPick(&arg, args, MPS_KEY_MAX_SIZE)) { | ||
| 259 | maxSize = arg.val.size; | 250 | maxSize = arg.val.size; |
| 260 | unless (maxSize >= meanSize) | 251 | if (ArgPick(&arg, args, MPS_KEY_MVT_RESERVE_DEPTH)) |
| 261 | return ResLIMIT; | ||
| 262 | } | ||
| 263 | if (ArgPick(&arg, args, MPS_KEY_MVT_RESERVE_DEPTH)) { | ||
| 264 | /* --- check that maxSize is not too large */ | ||
| 265 | reserveDepth = arg.val.count; | 252 | reserveDepth = arg.val.count; |
| 266 | unless (reserveDepth > 0) | 253 | if (ArgPick(&arg, args, MPS_KEY_MVT_FRAG_LIMIT)) |
| 267 | return ResLIMIT; | ||
| 268 | } | ||
| 269 | if (ArgPick(&arg, args, MPS_KEY_MVT_FRAG_LIMIT)) { | ||
| 270 | /* --- check that reserveDepth is not too large or small */ | ||
| 271 | fragLimit = arg.val.count; | 254 | fragLimit = arg.val.count; |
| 272 | unless (fragLimit <= 100) | 255 | |
| 273 | return ResLIMIT; | 256 | AVER(0 < minSize); |
| 274 | } | 257 | AVER(minSize <= meanSize); |
| 258 | AVER(meanSize <= maxSize); | ||
| 259 | AVER(reserveDepth > 0); | ||
| 260 | AVER(fragLimit <= 100); | ||
| 261 | /* TODO: More sanity checks possible? */ | ||
| 275 | 262 | ||
| 276 | /* see <design/poolmvt/#arch.parameters> */ | 263 | /* see <design/poolmvt/#arch.parameters> */ |
| 277 | fillSize = SizeAlignUp(maxSize, ArenaAlign(arena)); | 264 | fillSize = SizeAlignUp(maxSize, ArenaAlign(arena)); |
diff --git a/mps/code/poolsnc.c b/mps/code/poolsnc.c index 6b01c3a9b02..70c618bf385 100644 --- a/mps/code/poolsnc.c +++ b/mps/code/poolsnc.c | |||
| @@ -363,7 +363,6 @@ static Bool sncFindFreeSeg(Seg *segReturn, SNC snc, Size size) | |||
| 363 | 363 | ||
| 364 | static Res SNCInit(Pool pool, ArgList args) | 364 | static Res SNCInit(Pool pool, ArgList args) |
| 365 | { | 365 | { |
| 366 | Res res; | ||
| 367 | SNC snc; | 366 | SNC snc; |
| 368 | Format format; | 367 | Format format; |
| 369 | ArgStruct arg; | 368 | ArgStruct arg; |
| @@ -373,12 +372,8 @@ static Res SNCInit(Pool pool, ArgList args) | |||
| 373 | 372 | ||
| 374 | snc = Pool2SNC(pool); | 373 | snc = Pool2SNC(pool); |
| 375 | 374 | ||
| 376 | if (ArgPick(&arg, args, MPS_KEY_FORMAT)) | 375 | ArgRequire(&arg, args, MPS_KEY_FORMAT); |
| 377 | format = arg.val.format; | 376 | format = arg.val.format; |
| 378 | else { | ||
| 379 | res = ResPARAM; | ||
| 380 | goto failParam; | ||
| 381 | } | ||
| 382 | 377 | ||
| 383 | AVERT(Format, format); | 378 | AVERT(Format, format); |
| 384 | pool->format = format; | 379 | pool->format = format; |
| @@ -391,9 +386,6 @@ static Res SNCInit(Pool pool, ArgList args) | |||
| 391 | AVERT(SNC, snc); | 386 | AVERT(SNC, snc); |
| 392 | EVENT2(PoolInitSNC, pool, format); | 387 | EVENT2(PoolInitSNC, pool, format); |
| 393 | return ResOK; | 388 | return ResOK; |
| 394 | |||
| 395 | failParam: | ||
| 396 | return res; | ||
| 397 | } | 389 | } |
| 398 | 390 | ||
| 399 | 391 | ||
diff --git a/mps/code/segsmss.c b/mps/code/segsmss.c index 9d69aff302a..02b29504d34 100644 --- a/mps/code/segsmss.c +++ b/mps/code/segsmss.c | |||
| @@ -341,12 +341,8 @@ static Res AMSTInit(Pool pool, ArgList args) | |||
| 341 | 341 | ||
| 342 | AVERT(Pool, pool); | 342 | AVERT(Pool, pool); |
| 343 | 343 | ||
| 344 | if (ArgPick(&arg, args, MPS_KEY_FORMAT)) | 344 | ArgRequire(&arg, args, MPS_KEY_FORMAT); |
| 345 | format = arg.val.format; | 345 | format = arg.val.format; |
| 346 | else { | ||
| 347 | res = ResPARAM; | ||
| 348 | goto failParam; | ||
| 349 | } | ||
| 350 | 346 | ||
| 351 | res = ChainCreate(&chain, pool->arena, 1, &genParam); | 347 | res = ChainCreate(&chain, pool->arena, 1, &genParam); |
| 352 | if (res != ResOK) | 348 | if (res != ResOK) |
| @@ -369,10 +365,6 @@ static Res AMSTInit(Pool pool, ArgList args) | |||
| 369 | amst->sig = AMSTSig; | 365 | amst->sig = AMSTSig; |
| 370 | AVERT(AMST, amst); | 366 | AVERT(AMST, amst); |
| 371 | return ResOK; | 367 | return ResOK; |
| 372 | |||
| 373 | failParam: | ||
| 374 | AVER(res != ResOK); | ||
| 375 | return res; | ||
| 376 | } | 368 | } |
| 377 | 369 | ||
| 378 | 370 | ||