Received: by 2002:a05:6a10:413:0:0:0:0 with SMTP id 19csp2306525pxp; Mon, 21 Mar 2022 16:28:17 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzT3/SPDTSo/vuncre0b8r1gONhBaNLMhOLrW2WlMTwNDw+u1HDJNi1ZQzUAmLIfADVMTWE X-Received: by 2002:a62:7b43:0:b0:4fa:6936:6986 with SMTP id w64-20020a627b43000000b004fa69366986mr20683531pfc.13.1647905297729; Mon, 21 Mar 2022 16:28:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1647905297; cv=none; d=google.com; s=arc-20160816; b=CQ/43LT7KYp2CT0X+VqCKTH6KY1P6zsnHAur8f2d70J61VHvlWD4BPHDMkmy8u3Qrd GCkwXtqaKpLGtACJ44QGjhtThcEGkOh0LWblwLHfsAJUDYfbcVJGXFGjFyOVoPcc6YMM iXG0RPYfiK1FBTkEChEGZvYkQMIooYVvGux1S3+9aH5KP44wQpUR+3YUOx9Ts7dYGqbD DIoZPYyENiA7g8eEl3ejRbDNA9A7LutOUdy3ZwhHoTiprxhcSVhQmwTcTK/UztRXkJ1U YozUdTbuoUbMwhY06BImxmbjyVAJjTmERHV+k5+9lxWAEu9dADQb+619QrjbaE3emlA7 Vm8A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=o3wd7R5wPxmkmAlO2oQUwxbWJ5bDvfdTeLFNn177fBU=; b=dejCaDkXU7YHl4gJzpx+Q/AoHoNjLCZNw77YbDy0zAas53OS5k0verrEVc74XnJE1u o2bE/OHBvRxDP+5kcVKAbf+Ju+hVJA207A60BIbsZ8AwyINI3D3Hj85qBv1UXqH+YCLS 5wC0q3jxNkbb6fuh/s2qtbqKuFj3j/ZnngQm5/ehFZa9Ic1j/FJBEV78nYaTIVMuaRtk N5HkeWcZ/bLiN9blmqA1PUNW3/PchHA8Bfc62hXbN7c1R4T0HsEGQBH0tWruBcsFRwtx bjeWZH7mM+jhKf3LvXKKGBUABW5Cwg18AKBF7p78hfxEFHQGo+Q5SR/XLjS/AZpP7VJt N9og== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gnuweeb.org header.s=default header.b=BS61PPnL; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gnuweeb.org Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [23.128.96.19]) by mx.google.com with ESMTPS id 1-20020a620501000000b004fa3a8dffb1si7943910pff.104.2022.03.21.16.28.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Mar 2022 16:28:17 -0700 (PDT) Received-SPF: softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) client-ip=23.128.96.19; Authentication-Results: mx.google.com; dkim=pass header.i=@gnuweeb.org header.s=default header.b=BS61PPnL; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gnuweeb.org Received: from out1.vger.email (out1.vger.email [IPv6:2620:137:e000::1:20]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 544F24620AE; Mon, 21 Mar 2022 15:19:01 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S245405AbiCTPwK (ORCPT + 99 others); Sun, 20 Mar 2022 11:52:10 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34214 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233295AbiCTPwH (ORCPT ); Sun, 20 Mar 2022 11:52:07 -0400 Received: from gnuweeb.org (gnuweeb.org [51.81.211.47]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3703A4B428 for ; Sun, 20 Mar 2022 08:50:43 -0700 (PDT) Received: from mail-lf1-f48.google.com (mail-lf1-f48.google.com [209.85.167.48]) by gnuweeb.org (Postfix) with ESMTPSA id 960437E324 for ; Sun, 20 Mar 2022 15:50:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gnuweeb.org; s=default; t=1647791443; bh=DrWgZ38PquuHSGxjZUS3cpQF4U4/ehYfTH8o3ux34qI=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=BS61PPnLUTTd6D5sqKoO0MxLinu4DP6IXwzoox1fSTuSaZgCp9r4HCJoxAZ71prDz sLojXHFpE3xWba+b4ELIC1v3KDeflTumEEgoitQ8mHV13Z16oXLD4UfDvYPl3gDFwk VSXP/PoctDiVsV1j6nBCq7a05+vFFIGUzUE0QP9ZQY1Ly9XLFN0djOWMLq0aWlSGzJ kuRbzRhiE41YqqHLx6p9a4CZIh3lTbMlFR0f6eldYGIlCVeXlZcMPAzybRv7xjoIQv G4j5TQMlVLb/QxNP8AuS+9P4ugU3tJWRx9BQqI6OFHWNrojz8/egAU9IBOU3b2Vg4G 4bdii8ggDCQcw== Received: by mail-lf1-f48.google.com with SMTP id w7so21207007lfd.6 for ; Sun, 20 Mar 2022 08:50:43 -0700 (PDT) X-Gm-Message-State: AOAM532gUOA4Ftqn66ATd6r810DGrpC0mviUxzhrcbDPxFtqPmT31k67 pjByOXCujFFm+1lNXqlG5AcmXggVfjZrc+1hAEY= X-Received: by 2002:a05:6512:32c8:b0:44a:27fd:cd06 with SMTP id f8-20020a05651232c800b0044a27fdcd06mr1979767lfg.239.1647791441629; Sun, 20 Mar 2022 08:50:41 -0700 (PDT) MIME-Version: 1.0 References: <20220320093750.159991-1-ammarfaizi2@gnuweeb.org> <20220320093750.159991-6-ammarfaizi2@gnuweeb.org> In-Reply-To: <20220320093750.159991-6-ammarfaizi2@gnuweeb.org> From: Alviro Iskandar Setiawan Date: Sun, 20 Mar 2022 22:50:30 +0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [RFC PATCH v1 5/6] tools/nolibc/stdlib: Implement `malloc()`, `calloc()`, `realloc()` and `free()` To: Ammar Faizi Cc: Willy Tarreau , "Paul E. McKenney" , Nugraha , Linux Kernel Mailing List , "GNU/Weeb Mailing List" Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sun, Mar 20, 2022 at 4:37 PM Ammar Faizi wrote: > +void *realloc(void *old_ptr, size_t new_size) > +{ > + struct nolibc_heap *heap; > + void *ret; > + > + if (!old_ptr) > + return malloc(new_size); > + > + ret = malloc(new_size); > + if (__builtin_expect(!ret, 0)) > + return NULL; > + > + heap = container_of(old_ptr, struct nolibc_heap, user_p); > + memcpy(ret, heap->user_p, heap->len); > + munmap(heap, heap->len); > + return ret; > +} This better be simplified like this, so only have 1 malloc() call that applies to both branches. void *realloc(void *old_ptr, size_t new_size) { struct nolibc_heap *heap; void *ret; ret = malloc(new_size); if (__builtin_expect(!ret, 0)) return NULL; if (!old_ptr) return ret; heap = container_of(old_ptr, struct nolibc_heap, user_p); memcpy(ret, heap->user_p, heap->len); munmap(heap, heap->len); return ret; } -- Viro