@@ -132,15 +132,65 @@ tb_char_t const* tb_uuid4_make_cstr(tb_char_t uuid_cstr[37], tb_char_t const* na
132132 if (!tb_uuid4_make (uuid , name )) return tb_null ;
133133
134134 // make uuid string
135- tb_long_t size = tb_snprintf ( uuid_cstr
136- , 37
137- , "%02X%02X%02X%02X-%02X%02X-%02X%02X-%02X%02X-%02X%02X%02X%02X%02X%02X"
138- , uuid [0 ], uuid [1 ], uuid [2 ], uuid [3 ]
139- , uuid [4 ], uuid [5 ]
140- , uuid [6 ], uuid [7 ]
141- , uuid [8 ], uuid [9 ]
142- , uuid [10 ], uuid [11 ], uuid [12 ], uuid [13 ], uuid [14 ], uuid [15 ]);
143- tb_assert_and_check_return_val (size == 36 , tb_null );
144- uuid_cstr [36 ] = '\0' ;
135+ static tb_char_t const * digits_table = "0123456789ABCDEF" ;
136+ tb_char_t * s = uuid_cstr ;
137+
138+ s [0 ] = digits_table [(uuid [0 ] >> 4 ) & 15 ];
139+ s [1 ] = digits_table [uuid [0 ] & 15 ];
140+
141+ s [2 ] = digits_table [(uuid [1 ] >> 4 ) & 15 ];
142+ s [3 ] = digits_table [uuid [1 ] & 15 ];
143+
144+ s [4 ] = digits_table [(uuid [2 ] >> 4 ) & 15 ];
145+ s [5 ] = digits_table [uuid [2 ] & 15 ];
146+
147+ s [6 ] = digits_table [(uuid [3 ] >> 4 ) & 15 ];
148+ s [7 ] = digits_table [uuid [3 ] & 15 ];
149+
150+ s [8 ] = '-' ;
151+
152+ s [9 ] = digits_table [(uuid [4 ] >> 4 ) & 15 ];
153+ s [10 ] = digits_table [uuid [4 ] & 15 ];
154+
155+ s [11 ] = digits_table [(uuid [5 ] >> 4 ) & 15 ];
156+ s [12 ] = digits_table [uuid [5 ] & 15 ];
157+
158+ s [13 ] = '-' ;
159+
160+ s [14 ] = digits_table [(uuid [6 ] >> 4 ) & 15 ];
161+ s [15 ] = digits_table [uuid [6 ] & 15 ];
162+
163+ s [16 ] = digits_table [(uuid [7 ] >> 4 ) & 15 ];
164+ s [17 ] = digits_table [uuid [7 ] & 15 ];
165+
166+ s [18 ] = '-' ;
167+
168+ s [19 ] = digits_table [(uuid [8 ] >> 4 ) & 15 ];
169+ s [20 ] = digits_table [uuid [8 ] & 15 ];
170+
171+ s [21 ] = digits_table [(uuid [9 ] >> 4 ) & 15 ];
172+ s [22 ] = digits_table [uuid [9 ] & 15 ];
173+
174+ s [23 ] = '-' ;
175+
176+ s [24 ] = digits_table [(uuid [10 ] >> 4 ) & 15 ];
177+ s [25 ] = digits_table [uuid [10 ] & 15 ];
178+
179+ s [26 ] = digits_table [(uuid [11 ] >> 4 ) & 15 ];
180+ s [27 ] = digits_table [uuid [11 ] & 15 ];
181+
182+ s [28 ] = digits_table [(uuid [12 ] >> 4 ) & 15 ];
183+ s [29 ] = digits_table [uuid [12 ] & 15 ];
184+
185+ s [30 ] = digits_table [(uuid [13 ] >> 4 ) & 15 ];
186+ s [31 ] = digits_table [uuid [13 ] & 15 ];
187+
188+ s [32 ] = digits_table [(uuid [14 ] >> 4 ) & 15 ];
189+ s [33 ] = digits_table [uuid [14 ] & 15 ];
190+
191+ s [34 ] = digits_table [(uuid [15 ] >> 4 ) & 15 ];
192+ s [35 ] = digits_table [uuid [15 ] & 15 ];
193+
194+ s [36 ] = '\0' ;
145195 return uuid_cstr ;
146196}
0 commit comments