Feature #10082

[PATCH] add ZALLOC* macros to reduce ALLOC + MEMZERO calls

Added by Eric Wong 7 months ago. Updated 7 months ago.

[ruby-core:63939]
Status:Closed
Priority:Normal
Assignee:Eric Wong

Description

This reduces code and binary sizes.
ZALLOC macros are accessible via public API for exts

OK to add this API? It should simplify some code and reduce typos.

zalloc.patch Magnifier (7.4 KB) Eric Wong, 07/22/2014 10:31 PM

History

#1 Updated by Yukihiro Matsumoto 7 months ago

LGTM.

Matz.

#2 Updated by Tadashi Saito 7 months ago

The basic policy of patch feels great, but why don't you name CALLOC?

I feel CALLOC is more straitforward because calloc(3) is in the standard and
ZALLOC(_N) already uses calloc().

#3 Updated by Eric Wong 7 months ago

tad.a.digger@gmail.com wrote:

The basic policy of patch feels great, but why don't you name CALLOC?

I feel CALLOC is more straitforward because calloc(3) is in the standard and
ZALLOC(_N) already uses calloc().

I considered ZALLOC_N == CALLOC, but the arguments are reversed
for calloc(3), so I didn't want to risk that confusion, either.

I chose ZALLOC based on kzalloc/kmem_cache_zalloc in the Linux kernel.

On a related note: maybe RB_ZALLOC or RUBY_ZALLOC would be better, but
that would be inconsistent with existing ALLOC(_N) and REALLOC_N, too.

Naming is hard :<

matz/ko1 can make the final decision.

I'll commit in a day or so if we cannot decide, the name may still
change after commit.

#4 Updated by Tadashi Saito 7 months ago

I considered ZALLOC_N == CALLOC, but the arguments are reversed
for calloc(3), so I didn't want to risk that confusion, either.

I agree with your concern. ZALLOC may be better.

(My only concern is that zlib uses "zalloc" as its API, but we will
not have to worry about it:
https://github.com/ruby/ruby/blob/543b402/ext/zlib/zlib.c#L609 )

#5 Updated by Nobuyoshi Nakada 7 months ago

Tadashi Saito wrote:

(My only concern is that zlib uses "zalloc" as its API, but we will
not have to worry about it:
https://github.com/ruby/ruby/blob/543b402/ext/zlib/zlib.c#L609 )

How about 0ALLOC()? ;)

#6 Updated by Eric Wong 7 months ago

  • Status changed from Open to Closed
  • Assignee changed from Koichi Sasada to Eric Wong

Also available in: Atom PDF