@@ -5077,49 +5077,33 @@ jerry_log_set_level (jerry_log_level_t level)
5077
5077
* Log a zero-terminated string message.
5078
5078
*
5079
5079
* @param str_p: message
5080
+ * @param str_size: size of message
5080
5081
*/
5081
5082
static void
5082
- jerry_log_string (const char * str_p )
5083
+ jerry_log_string (const jerry_char_t * str_p , jerry_size_t str_size )
5083
5084
{
5084
- jerry_port_log (str_p );
5085
+ jerry_port_log_buffer (str_p , str_size );
5085
5086
5086
5087
#if JERRY_DEBUGGER
5087
5088
if (jerry_debugger_is_connected ())
5088
5089
{
5089
- jerry_debugger_send_string (JERRY_DEBUGGER_OUTPUT_RESULT ,
5090
- JERRY_DEBUGGER_OUTPUT_LOG ,
5091
- (const uint8_t * ) str_p ,
5092
- strlen (str_p ));
5090
+ jerry_debugger_send_string (JERRY_DEBUGGER_OUTPUT_RESULT , JERRY_DEBUGGER_OUTPUT_LOG , str_p , str_size );
5093
5091
}
5094
5092
#endif /* JERRY_DEBUGGER */
5095
5093
} /* jerry_log_string */
5096
5094
5097
5095
/**
5098
- * Log a fixed-size string message.
5096
+ * Log a zero-terminated number string message.
5099
5097
*
5100
- * @param str_p: message
5101
- * @param size: size
5102
- * @param buffer_p: buffer to use
5098
+ * @param cursor_p: the number string cursor
5099
+ * @param buffer_p: buffer used to construct the number string
5103
5100
*/
5104
5101
static void
5105
- jerry_log_string_fixed (const char * str_p , size_t size , char * buffer_p )
5102
+ jerry_log_cursor (const jerry_char_t * cursor_p , jerry_char_t * buffer_p )
5106
5103
{
5107
- const size_t batch_size = JERRY_LOG_BUFFER_SIZE - 1 ;
5108
-
5109
- while (size > batch_size )
5110
- {
5111
- memcpy (buffer_p , str_p , batch_size );
5112
- buffer_p [batch_size ] = '\0' ;
5113
- jerry_log_string (buffer_p );
5114
-
5115
- str_p += batch_size ;
5116
- size -= batch_size ;
5117
- }
5118
-
5119
- memcpy (buffer_p , str_p , size );
5120
- buffer_p [size ] = '\0' ;
5121
- jerry_log_string (buffer_p );
5122
- } /* jerry_log_string_fixed */
5104
+ jerry_char_t * tail_p = buffer_p + JERRY_LOG_BUFFER_SIZE - 1 ;
5105
+ jerry_log_string (cursor_p , (jerry_size_t ) (tail_p - cursor_p ));
5106
+ } /* jerry_log_cursor */
5123
5107
5124
5108
/**
5125
5109
* Format an unsigned number.
@@ -5132,11 +5116,13 @@ jerry_log_string_fixed (const char *str_p, size_t size, char *buffer_p)
5132
5116
*
5133
5117
* @return formatted number as string
5134
5118
*/
5135
- static char *
5136
- jerry_format_unsigned (unsigned int num , uint8_t width , char padding , uint8_t radix , char * buffer_p )
5119
+ static jerry_char_t *
5120
+ jerry_format_unsigned (unsigned int num , uint8_t width , jerry_char_t padding , uint8_t radix , jerry_char_t * buffer_p )
5137
5121
{
5138
- static const char digits [] = { '0' , '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' , 'a' , 'b' , 'c' , 'd' , 'e' , 'f' };
5139
- char * cursor_p = buffer_p + JERRY_LOG_BUFFER_SIZE ;
5122
+ static const jerry_char_t digits [] = {
5123
+ '0' , '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' , 'a' , 'b' , 'c' , 'd' , 'e' , 'f'
5124
+ };
5125
+ jerry_char_t * cursor_p = buffer_p + JERRY_LOG_BUFFER_SIZE ;
5140
5126
* (-- cursor_p ) = '\0' ;
5141
5127
uint8_t count = 0 ;
5142
5128
@@ -5166,8 +5152,8 @@ jerry_format_unsigned (unsigned int num, uint8_t width, char padding, uint8_t ra
5166
5152
*
5167
5153
* @return formatted number as string
5168
5154
*/
5169
- static char *
5170
- jerry_format_int (int num , uint8_t width , char padding , char * buffer_p )
5155
+ static jerry_char_t *
5156
+ jerry_format_int (int num , uint8_t width , jerry_char_t padding , jerry_char_t * buffer_p )
5171
5157
{
5172
5158
if (num >= 0 )
5173
5159
{
@@ -5178,15 +5164,15 @@ jerry_format_int (int num, uint8_t width, char padding, char *buffer_p)
5178
5164
5179
5165
if (padding == '0' && width > 0 )
5180
5166
{
5181
- char * cursor_p = jerry_format_unsigned ((unsigned ) num , -- width , padding , 10 , buffer_p );
5167
+ jerry_char_t * cursor_p = jerry_format_unsigned ((unsigned ) num , -- width , padding , 10 , buffer_p );
5182
5168
* (-- cursor_p ) = '-' ;
5183
5169
return cursor_p ;
5184
5170
}
5185
5171
5186
- char * cursor_p = jerry_format_unsigned ((unsigned ) num , 0 , ' ' , 10 , buffer_p );
5172
+ jerry_char_t * cursor_p = jerry_format_unsigned ((unsigned ) num , 0 , ' ' , 10 , buffer_p );
5187
5173
* (-- cursor_p ) = '-' ;
5188
5174
5189
- char * indent_p = buffer_p + JERRY_LOG_BUFFER_SIZE - width - 1 ;
5175
+ jerry_char_t * indent_p = buffer_p + JERRY_LOG_BUFFER_SIZE - width - 1 ;
5190
5176
5191
5177
while (cursor_p > indent_p )
5192
5178
{
@@ -5220,17 +5206,17 @@ jerry_log (jerry_log_level_t level, const char *format_p, ...)
5220
5206
}
5221
5207
5222
5208
va_list vl ;
5223
- char buffer_p [JERRY_LOG_BUFFER_SIZE ];
5224
- uint32_t buffer_index = 0 ;
5225
- const char * cursor_p = format_p ;
5209
+ jerry_char_t buffer_p [JERRY_LOG_BUFFER_SIZE ];
5210
+ jerry_size_t buffer_index = 0 ;
5211
+ const jerry_char_t * cursor_p = ( const jerry_char_t * ) format_p ;
5226
5212
va_start (vl , format_p );
5227
5213
5228
5214
while (* cursor_p != '\0' )
5229
5215
{
5230
5216
if (* cursor_p == '%' || buffer_index > JERRY_LOG_BUFFER_SIZE - 2 )
5231
5217
{
5232
5218
buffer_p [buffer_index ] = '\0' ;
5233
- jerry_log_string (buffer_p );
5219
+ jerry_log_string (buffer_p , buffer_index );
5234
5220
buffer_index = 0 ;
5235
5221
}
5236
5222
@@ -5242,8 +5228,8 @@ jerry_log (jerry_log_level_t level, const char *format_p, ...)
5242
5228
5243
5229
++ cursor_p ;
5244
5230
uint8_t width = 0 ;
5245
- size_t precision = 0 ;
5246
- char padding = ' ' ;
5231
+ jerry_size_t precision = 0 ;
5232
+ jerry_char_t padding = ' ' ;
5247
5233
5248
5234
if (* cursor_p == '0' )
5249
5235
{
@@ -5263,7 +5249,7 @@ jerry_log (jerry_log_level_t level, const char *format_p, ...)
5263
5249
}
5264
5250
else if (* cursor_p == '.' && * (cursor_p + 1 ) == '*' )
5265
5251
{
5266
- precision = (size_t ) va_arg (vl , int );
5252
+ precision = (jerry_size_t ) va_arg (vl , int );
5267
5253
cursor_p += 2 ;
5268
5254
}
5269
5255
@@ -5278,36 +5264,36 @@ jerry_log (jerry_log_level_t level, const char *format_p, ...)
5278
5264
{
5279
5265
case 's' :
5280
5266
{
5281
- char * str_p = va_arg (vl , char * );
5267
+ jerry_char_t * str_p = va_arg (vl , jerry_char_t * );
5282
5268
5283
5269
if (precision == 0 )
5284
5270
{
5285
- jerry_log_string (str_p );
5271
+ jerry_log_string (str_p , ( jerry_size_t ) strlen (( const char * ) str_p ) );
5286
5272
break ;
5287
5273
}
5288
5274
5289
- jerry_log_string_fixed (str_p , precision , buffer_p );
5275
+ jerry_log_string (str_p , precision );
5290
5276
break ;
5291
5277
}
5292
5278
case 'c' :
5293
5279
{
5294
5280
/* Arguments of types narrower than int are promoted to int for variadic functions */
5295
- buffer_p [buffer_index ++ ] = (char ) va_arg (vl , int );
5281
+ buffer_p [buffer_index ++ ] = (jerry_char_t ) va_arg (vl , int );
5296
5282
break ;
5297
5283
}
5298
5284
case 'd' :
5299
5285
{
5300
- jerry_log_string (jerry_format_int (va_arg (vl , int ), width , padding , buffer_p ));
5286
+ jerry_log_cursor (jerry_format_int (va_arg (vl , int ), width , padding , buffer_p ), buffer_p );
5301
5287
break ;
5302
5288
}
5303
5289
case 'u' :
5304
5290
{
5305
- jerry_log_string (jerry_format_unsigned (va_arg (vl , unsigned int ), width , padding , 10 , buffer_p ));
5291
+ jerry_log_cursor (jerry_format_unsigned (va_arg (vl , unsigned int ), width , padding , 10 , buffer_p ), buffer_p );
5306
5292
break ;
5307
5293
}
5308
5294
case 'x' :
5309
5295
{
5310
- jerry_log_string (jerry_format_unsigned (va_arg (vl , unsigned int ), width , padding , 16 , buffer_p ));
5296
+ jerry_log_cursor (jerry_format_unsigned (va_arg (vl , unsigned int ), width , padding , 16 , buffer_p ), buffer_p );
5311
5297
break ;
5312
5298
}
5313
5299
default :
@@ -5321,7 +5307,7 @@ jerry_log (jerry_log_level_t level, const char *format_p, ...)
5321
5307
if (buffer_index > 0 )
5322
5308
{
5323
5309
buffer_p [buffer_index ] = '\0' ;
5324
- jerry_log_string (buffer_p );
5310
+ jerry_log_string (buffer_p , buffer_index );
5325
5311
}
5326
5312
5327
5313
va_end (vl );
0 commit comments