@@ -5083,49 +5083,33 @@ jerry_log_set_level (jerry_log_level_t level)
5083
5083
* Log a zero-terminated string message.
5084
5084
*
5085
5085
* @param str_p: message
5086
+ * @param str_size: size of message
5086
5087
*/
5087
5088
static void
5088
- jerry_log_string (const char * str_p )
5089
+ jerry_log_string (const jerry_char_t * str_p , jerry_size_t str_size )
5089
5090
{
5090
- jerry_port_log (str_p );
5091
+ jerry_port_log_buffer (str_p , str_size );
5091
5092
5092
5093
#if JERRY_DEBUGGER
5093
5094
if (jerry_debugger_is_connected ())
5094
5095
{
5095
- jerry_debugger_send_string (JERRY_DEBUGGER_OUTPUT_RESULT ,
5096
- JERRY_DEBUGGER_OUTPUT_LOG ,
5097
- (const uint8_t * ) str_p ,
5098
- strlen (str_p ));
5096
+ jerry_debugger_send_string (JERRY_DEBUGGER_OUTPUT_RESULT , JERRY_DEBUGGER_OUTPUT_LOG , str_p , str_size );
5099
5097
}
5100
5098
#endif /* JERRY_DEBUGGER */
5101
5099
} /* jerry_log_string */
5102
5100
5103
5101
/**
5104
- * Log a fixed-size string message.
5102
+ * Log a zero-terminated number string message.
5105
5103
*
5106
- * @param str_p: message
5107
- * @param size: size
5108
- * @param buffer_p: buffer to use
5104
+ * @param cursor_p: the number string cursor
5105
+ * @param buffer_p: buffer used to construct the number string
5109
5106
*/
5110
5107
static void
5111
- jerry_log_string_fixed (const char * str_p , size_t size , char * buffer_p )
5108
+ jerry_log_cursor (const jerry_char_t * cursor_p , jerry_char_t * buffer_p )
5112
5109
{
5113
- const size_t batch_size = JERRY_LOG_BUFFER_SIZE - 1 ;
5114
-
5115
- while (size > batch_size )
5116
- {
5117
- memcpy (buffer_p , str_p , batch_size );
5118
- buffer_p [batch_size ] = '\0' ;
5119
- jerry_log_string (buffer_p );
5120
-
5121
- str_p += batch_size ;
5122
- size -= batch_size ;
5123
- }
5124
-
5125
- memcpy (buffer_p , str_p , size );
5126
- buffer_p [size ] = '\0' ;
5127
- jerry_log_string (buffer_p );
5128
- } /* jerry_log_string_fixed */
5110
+ jerry_char_t * tail_p = buffer_p + JERRY_LOG_BUFFER_SIZE - 1 ;
5111
+ jerry_log_string (cursor_p , (jerry_size_t ) (tail_p - cursor_p ));
5112
+ } /* jerry_log_cursor */
5129
5113
5130
5114
/**
5131
5115
* Format an unsigned number.
@@ -5138,11 +5122,13 @@ jerry_log_string_fixed (const char *str_p, size_t size, char *buffer_p)
5138
5122
*
5139
5123
* @return formatted number as string
5140
5124
*/
5141
- static char *
5142
- jerry_format_unsigned (unsigned int num , uint8_t width , char padding , uint8_t radix , char * buffer_p )
5125
+ static jerry_char_t *
5126
+ jerry_format_unsigned (unsigned int num , uint8_t width , jerry_char_t padding , uint8_t radix , jerry_char_t * buffer_p )
5143
5127
{
5144
- static const char digits [] = { '0' , '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' , 'a' , 'b' , 'c' , 'd' , 'e' , 'f' };
5145
- char * cursor_p = buffer_p + JERRY_LOG_BUFFER_SIZE ;
5128
+ static const jerry_char_t digits [] = {
5129
+ '0' , '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' , 'a' , 'b' , 'c' , 'd' , 'e' , 'f'
5130
+ };
5131
+ jerry_char_t * cursor_p = buffer_p + JERRY_LOG_BUFFER_SIZE ;
5146
5132
* (-- cursor_p ) = '\0' ;
5147
5133
uint8_t count = 0 ;
5148
5134
@@ -5172,8 +5158,8 @@ jerry_format_unsigned (unsigned int num, uint8_t width, char padding, uint8_t ra
5172
5158
*
5173
5159
* @return formatted number as string
5174
5160
*/
5175
- static char *
5176
- jerry_format_int (int num , uint8_t width , char padding , char * buffer_p )
5161
+ static jerry_char_t *
5162
+ jerry_format_int (int num , uint8_t width , jerry_char_t padding , jerry_char_t * buffer_p )
5177
5163
{
5178
5164
if (num >= 0 )
5179
5165
{
@@ -5184,15 +5170,15 @@ jerry_format_int (int num, uint8_t width, char padding, char *buffer_p)
5184
5170
5185
5171
if (padding == '0' && width > 0 )
5186
5172
{
5187
- char * cursor_p = jerry_format_unsigned ((unsigned ) num , -- width , padding , 10 , buffer_p );
5173
+ jerry_char_t * cursor_p = jerry_format_unsigned ((unsigned ) num , -- width , padding , 10 , buffer_p );
5188
5174
* (-- cursor_p ) = '-' ;
5189
5175
return cursor_p ;
5190
5176
}
5191
5177
5192
- char * cursor_p = jerry_format_unsigned ((unsigned ) num , 0 , ' ' , 10 , buffer_p );
5178
+ jerry_char_t * cursor_p = jerry_format_unsigned ((unsigned ) num , 0 , ' ' , 10 , buffer_p );
5193
5179
* (-- cursor_p ) = '-' ;
5194
5180
5195
- char * indent_p = buffer_p + JERRY_LOG_BUFFER_SIZE - width - 1 ;
5181
+ jerry_char_t * indent_p = buffer_p + JERRY_LOG_BUFFER_SIZE - width - 1 ;
5196
5182
5197
5183
while (cursor_p > indent_p )
5198
5184
{
@@ -5226,17 +5212,17 @@ jerry_log (jerry_log_level_t level, const char *format_p, ...)
5226
5212
}
5227
5213
5228
5214
va_list vl ;
5229
- char buffer_p [JERRY_LOG_BUFFER_SIZE ];
5230
- uint32_t buffer_index = 0 ;
5231
- const char * cursor_p = format_p ;
5215
+ jerry_char_t buffer_p [JERRY_LOG_BUFFER_SIZE ];
5216
+ jerry_size_t buffer_index = 0 ;
5217
+ const jerry_char_t * cursor_p = ( const jerry_char_t * ) format_p ;
5232
5218
va_start (vl , format_p );
5233
5219
5234
5220
while (* cursor_p != '\0' )
5235
5221
{
5236
5222
if (* cursor_p == '%' || buffer_index > JERRY_LOG_BUFFER_SIZE - 2 )
5237
5223
{
5238
5224
buffer_p [buffer_index ] = '\0' ;
5239
- jerry_log_string (buffer_p );
5225
+ jerry_log_string (buffer_p , buffer_index );
5240
5226
buffer_index = 0 ;
5241
5227
}
5242
5228
@@ -5248,8 +5234,8 @@ jerry_log (jerry_log_level_t level, const char *format_p, ...)
5248
5234
5249
5235
++ cursor_p ;
5250
5236
uint8_t width = 0 ;
5251
- size_t precision = 0 ;
5252
- char padding = ' ' ;
5237
+ jerry_size_t precision = 0 ;
5238
+ jerry_char_t padding = ' ' ;
5253
5239
5254
5240
if (* cursor_p == '0' )
5255
5241
{
@@ -5269,7 +5255,7 @@ jerry_log (jerry_log_level_t level, const char *format_p, ...)
5269
5255
}
5270
5256
else if (* cursor_p == '.' && * (cursor_p + 1 ) == '*' )
5271
5257
{
5272
- precision = (size_t ) va_arg (vl , int );
5258
+ precision = (jerry_size_t ) va_arg (vl , int );
5273
5259
cursor_p += 2 ;
5274
5260
}
5275
5261
@@ -5284,36 +5270,36 @@ jerry_log (jerry_log_level_t level, const char *format_p, ...)
5284
5270
{
5285
5271
case 's' :
5286
5272
{
5287
- char * str_p = va_arg (vl , char * );
5273
+ jerry_char_t * str_p = va_arg (vl , jerry_char_t * );
5288
5274
5289
5275
if (precision == 0 )
5290
5276
{
5291
- jerry_log_string (str_p );
5277
+ jerry_log_string (str_p , ( jerry_size_t ) strlen (( const char * ) str_p ) );
5292
5278
break ;
5293
5279
}
5294
5280
5295
- jerry_log_string_fixed (str_p , precision , buffer_p );
5281
+ jerry_log_string (str_p , precision );
5296
5282
break ;
5297
5283
}
5298
5284
case 'c' :
5299
5285
{
5300
5286
/* Arguments of types narrower than int are promoted to int for variadic functions */
5301
- buffer_p [buffer_index ++ ] = (char ) va_arg (vl , int );
5287
+ buffer_p [buffer_index ++ ] = (jerry_char_t ) va_arg (vl , int );
5302
5288
break ;
5303
5289
}
5304
5290
case 'd' :
5305
5291
{
5306
- jerry_log_string (jerry_format_int (va_arg (vl , int ), width , padding , buffer_p ));
5292
+ jerry_log_cursor (jerry_format_int (va_arg (vl , int ), width , padding , buffer_p ), buffer_p );
5307
5293
break ;
5308
5294
}
5309
5295
case 'u' :
5310
5296
{
5311
- jerry_log_string (jerry_format_unsigned (va_arg (vl , unsigned int ), width , padding , 10 , buffer_p ));
5297
+ jerry_log_cursor (jerry_format_unsigned (va_arg (vl , unsigned int ), width , padding , 10 , buffer_p ), buffer_p );
5312
5298
break ;
5313
5299
}
5314
5300
case 'x' :
5315
5301
{
5316
- jerry_log_string (jerry_format_unsigned (va_arg (vl , unsigned int ), width , padding , 16 , buffer_p ));
5302
+ jerry_log_cursor (jerry_format_unsigned (va_arg (vl , unsigned int ), width , padding , 16 , buffer_p ), buffer_p );
5317
5303
break ;
5318
5304
}
5319
5305
default :
@@ -5327,7 +5313,7 @@ jerry_log (jerry_log_level_t level, const char *format_p, ...)
5327
5313
if (buffer_index > 0 )
5328
5314
{
5329
5315
buffer_p [buffer_index ] = '\0' ;
5330
- jerry_log_string (buffer_p );
5316
+ jerry_log_string (buffer_p , buffer_index );
5331
5317
}
5332
5318
5333
5319
va_end (vl );
0 commit comments